[제어문]
- IF: 알반적인 프로그래밍에서 사용되는 IF문을 PL/SQL에서도 사용할 수 있다. IF, THEN, ELSIF, THEN, ELSE, END IF임에 유의한다.
DECLARE
v_myage NUMBER := 41 ;
BEGIN
IF v_myage < 11 THEN
DBMS_OUTPUT.PUT_LINE(' I am a child ');
ELSIF v_myage < 20 THEN
DBMS_OUTPUT.PUT_LINE(' I am young ');
ELSIF v_myage < 30 THEN
DBMS_OUTPUT.PUT_LINE(' I am in my twenties');
ELSIF v_myage < 40 THEN
DBMS_OUTPUT.PUT_LINE(' I am in my thirties');
ELSE
DBMS_OUTPUT.PUT_LINE(' I am always young ');
END IF;
END;
/
I am in my thirties
PL/SQL procedure successfully completed.
- IF와 NULL : NULL의 비교는 항상 NULL이 때문에, ELSE 이하 문만 수행된다.
DECLARE
v_myage NUMBER ;
BEGIN
IF v_myage < 11 THEN
DBMS_OUTPUT.PUT_LINE(' I am a child ');
ELSE
DBMS_OUTPUT.PUT_LINE(' I am not a child ');
END IF;
END;
/
I am not a child
PL/SQL procedure successfully completed.
- CASE 표현식과 조건문
1) CASE 표현식 : 단순하게 조건문에 따른 값을 대입할 때 사용된다. THEN절에 특정 값이 사용될 때 필요하다.
DECLARE
v_grade CHAR(1) := UPPER('&grade') ;
v_appraisal VARCHAR2(20) ;
BEGIN
v_appraisal :=
CASE v_grade
WHEN 'A' THEN
'Excellent'
WHEN 'B' THEN
'Very Good'
WHEN 'C' THEN
'Good'
ELSE
'No such grade'
END;
DBMS_OUTPUT.PUT_LINE ('Grade : '|| v_grade) ;
DBMS_OUTPUT.PUT_LINE ('Appraisal: '|| v_appraisal);
END;
/
Enter value for grade: B
old 2: v_grade CHAR(1) := UPPER('&grade') ;
new 2: v_grade CHAR(1) := UPPER('B') ;
Grade : B
Appraisal: Very Good
PL/SQL procedure successfully completed.
2) CASE 조건문 : THEN 절에서 단순한 값이 아닌 PL/SQL문 (명령문)을 실행 시키고자 하는 경우에 CASE 조건문을 사용해야 한다. CASE 조건문은 끝이 END CASE로 끝난다.
'PL SQL' 카테고리의 다른 글
PL/SQL 반복문 (Basic LOOP, WHILE LOOP, FOR LOOP, 중첩 루프 및 레이블) (1) | 2016.07.07 |
---|---|
PL/SQL 개관 - 3 (SELECT문) (0) | 2016.07.07 |
PL/SQL 개관 - 2 (중첩 블록 및 PL/SQL에서 사용 가능한 SQL) (0) | 2016.07.07 |
PL/SQL 개관 - 1 (정의, 특징, 장점, Block의 종류) (0) | 2016.07.07 |
PL/SQL 패키지 (Package) - 3 (패키지 작성 지침, 오버로드, 지속 상태, 상수 및 예외 표준화) (0) | 2016.07.07 |