DataBase/Oracle
17. Oracle PL/SQL 조건문
유가엘
2020. 4. 2. 23:25
IF문 의 구조
IF ( 조건 ) THEN
실행명령
END IF;
SET SERVEROUTPUT ON;
DECLARE
emp_id employees.employee_id%TYPE;
emp_name employees.last_name%TYPE;
emp_dept employees.department_id%TYPE;
dept_name varchar2(20):= null;
BEGIN
SELECT employee_id, last_name, department_id
INTO emp_id, emp_name, emp_dept
FROM employees
WHERE employee_id = 124;
IF(emp_dept = 50) THEN
dept_name := 'Shipping';
END IF;
IF(emp_dept = 60) THEN
dept_name := 'IT';
END IF;
IF(emp_dept = 70) THEN
dept_name := 'Public Relation';
END IF;
IF(emp_dept = 80) THEN
dept_name := 'Sales';
END IF;
dbms_output.put_line(emp_id||' '||emp_name||' '||emp_dept||' '||dept_name);
END;
/
IF - ELSIF - END IF 문 의 구조
IF ( 조건 ) THEN
실행명령
ELSIF ( 조건 ) THEN
실행명령
END IF;
DECLARE
emp_id employees.employee_id%TYPE;
emp_name employees.last_name%TYPE;
emp_dept employees.department_id%TYPE;
dept_name varchar2(20):= null;
BEGIN
SELECT employee_id, last_name, department_id
INTO emp_id, emp_name, emp_dept
FROM employees
WHERE employee_id = 124;
IF(emp_dept = 50) THEN
dept_name := 'Shipping';
ELSIF(emp_dept = 60) THEN
dept_name := 'IT';
ELSIF(emp_dept = 70) THEN
dept_name := 'Public Relation';
ELSIF(emp_dept = 80) THEN
dept_name := 'Sales';
END IF;
dbms_output.put_line(emp_id||' '||emp_name||' '||emp_dept||' '||dept_name);
END;
/
IF - ELSE 문 의 구조
IF ( 조건 ) THEN
실행명령
ELSE
실행명령
END IF;
DECLARE
emp_id employees.employee_id%TYPE;
emp_name employees.last_name%TYPE;
emp_comm employees.commission_pct%TYPE := null;
BEGIN
SELECT employee_id, last_name, commission_pct
INTO emp_id, emp_name, emp_comm
FROM employees
WHERE employee_id = 160;
IF(emp_comm > 0) THEN
dbms_output.put_line(emp_name||'의 보너스는'||emp_comm||'입니다 ');
ELSE
dbms_output.put_line(emp_name||'의 보너스는 없습니다. ');
END IF;
END;
/
CASE 문 의 구조
CASE 대상 WHEN (조건 ) THEN 실행명령
WHEN (조건 ) THEN 실행명령
END;
DECLARE
emp_id employees.employee_id%TYPE;
emp_name employees.last_name%TYPE;
emp_dept employees.department_id%TYPE;
dept_name varchar2(20):= null;
BEGIN
SELECT employee_id, last_name, department_id
INTO emp_id, emp_name, emp_dept
FROM employees
WHERE employee_id = &empno;
dept_name := CASE emp_dept
WHEN 50 THEN 'Shipping'
WHEN 60 THEN 'IT'
WHEN 70 THEN 'Public Relation'
WHEN 80 THEN 'Sales'
END;
dbms_output.put_line(emp_id||' '||emp_name||' '||emp_dept||' '||dept_name);
END;
/