728x90
반응형
IF ~ ELSIF~ ELSE조건문 |
|
SYNTAX IF 조건1 condition1 THEN 실행문1(statement1) ; [ ELSIF 조건2 THEN 실행문2 ; ELSE 실행문3 ; ] END IF; |
DECLARE vnum1 NUMBER :=1; vnum2 NUMBER :=2; BEGIN IF vnum1 >= vnum2 THEN DBMS_OUTPUT.PUT_LINE(vnum1||'이(가)'||vnum2||'보다 큰 수 입니다.'); ELSE DBMS_OUTPUT.PUT_LINE(vnum2||'이(가)'||vnum1||'보다 큰 수 입니다.'); END IF; END; 2이(가)1보다 큰 수 입니다. |
IF ~ ELSIF~ ELSE조건문
DECLARE V_SAL NUMBER :=0; V_DEPTNO NUMBER :=0; BEGIN V_DEPTNO := ROUND(DBMS_RANDOM.VALUE(10,30),-1); --10~30사이 랜덤 --DBMS_OUTPUT.PUT_LINE(DBMS_RANDOM.VALUE(10,30)); SELECT MAX(SAL) AS SAL INTO V_SAL FROM EMP WHERE DEPTNO = V_DEPTNO; DBMS_OUTPUT.PUT_LINE('연봉'||V_SAL); IF V_SAL BETWEEN 1 AND 1000 THEN DBMS_OUTPUT.PUT_LINE ('낮음'); ELSIF V_SAL BETWEEN 1001 AND 2000 THEN DBMS_OUTPUT.PUT_LINE ('중간'); ELSIF V_SAL BETWEEN 2001 AND 3000 THEN DBMS_OUTPUT.PUT_LINE ('높음'); ELSE DBMS_OUTPUT.PUT_LINE ('최상위'); END IF; END;
연봉2850 높음
CASE ~ WHEN
--ORACLE에서의 BOOLEAN자료형 --값 : TRUE, FALSE, NULL값을 가질 수 있다. (대소문자 섞어 사용 가능) --다른 자료형은 DBMS_OUTPUT의 출력문을 통해 출력가능하지만, --BOOLEAN자료형 값은 DBMS_OUTPUT의 출력문으로 바로 값을 출력할 수 없다.(오류) DECLARE v_pi INTEGER; v_vc VARCHAR2(10); v_order BOOLEAN; BEGIN DBMS_OUTPUT.PUT_LINE('V_PI = ' ||V_PI); DBMS_OUTPUT.PUT_LINE('V_VC = ' ||V_VC); v_order := TRUE ; --에러:v_order := 'TRUE'; --에러 DBMS_OUTPUT.PUT_LINE(v_order); DBMS_OUTPUT.PUT_LINE('BAL = ' || case when v_order = true then 'True' when v_order = FALSE THEN 'False' else 'NULL' end ); END;
V_PI = V_VC = BAL = True
728x90
반응형
'[ORACLE]' 카테고리의 다른 글
[ORACLE] PL/SQL - CURSOR (0) | 2024.01.25 |
---|---|
[ORACLE] PL/SQL - LOOP, FOR LOOP, WHILE LOOP (0) | 2024.01.25 |
[ORACLE] REFERENCE TYPE - TYPE, ROWTYPE (0) | 2024.01.24 |
[ORACLE] PL/SQL - ANOYMOUS BLOCK, (0) | 2024.01.24 |
[ORACLE] 집합연산자 UNION, UNION ALL, INTERSECT, MINUS (0) | 2024.01.24 |