절차형 SQL
: 프로그래밍 언어처럼 연속적인 실행이나, 분기, 반복 등의 제어가 가능한 SQL
ex) 프로시저, 사용자 정의 함수, 트리거
DECLARE
(선언)
BEGIN
(시작점)
END
(종료점)
PL/SQL 문법
: IF(조건문), LOOP(반복문), CONTINUE, GOTO 등
IF문
IF 조건 THEN
실행문
END IF;
IF 조건 THEN
실행문1;
ELSE
실행문2;
END IF;
IF 조건1 THEN
실행문1;
ELSEIF 조건2 THEN
실행문2;
ELSEIF 조건3 THEN
실행문3;
ELSE
실행문4;
END IF;
ex) 점수가 60점 이상이면 '합격' 출력
DECLARE
점수 INT := 80;
BEGIN
IF 점수 >=60 THEN
DBMS_OUTPUT.PUT_LINE('합격');
END IF;
END;
LOOF문
LOOP
문장;
EXIT WHEN 조건;
END LOOP;
ex) 1~5까지 합계 구하기
DECLARE
i INT := 0;
합계 INT := 0;
BEGIN
LOOP
i := i+1;
합계 := 합계 + i;
EXIT WHEN i >= 5;
END LOOP;
END;
CONTINUE문
:조건에 해당되면 반복문 처음으로 이동
CONTINUE WHEN 조건;
ex) i 값이 3, 4, 5 인 경우만 'A' 출력
DECLARE
BEGIN
FOR i IN 1..5
LOOP
CONTINUE WHEN i <= 2;
DBMS_OUTPUT.PUT_LINE('A');
END LOOP;
END;
GOTO문
:해당 위치로 이동
GOTO 레이블;
<<레이블>>
실행문;
ex) 반복문 수행 중 GOTO문이 수행되어 'helloSQL' 출력
DECLARE
BEGIN
FOR i IN 1..5
LOOP
GOTO helloSQL;
DBMS_OUTPUT.PUT_LINE('A');
END LOOP;
<<hellSQL>>
DBMS_OUTPUT.PUT_LINE('helloSQL');
END;