본문 바로가기
Server/Oracle

[Oracle] PL/SQL 프로시저 함수들 / DBMS_LOCK.SLEEP(), IF..ELSE.., WHILE LOOP

by 뒹굴거리는프로도 2024. 1. 19.
반응형

 


 

Oracle의 PL/SQL 프로시저는 다음과 같은 형태를 띤다.

DECLARE
 변수이름1 데이터형식;
 변수이름2 데이터형식;

BEGIN
 /*PL/SQL 부분*/
END;

 

프로시저를 사용하면 SQL 개발 시 편리하게 프로그래밍 할 수 있다.

 

DBMS_LOCK.SLEEP()


코드의 실행을 일시정지 하기 위해 DBMS_LOCK_SLEEP()를 사용할 수 있다.

()에 넣은 숫자는 초 단위이다. 예시는 다음과 같다.

BEGIN
 DBMS_LOCK.SLEEP(3);
 DBMS_OUTPUT.PUT_LINE('3초간 멈춘 후 진행');
END;
#결과 값 :
3초간 멈춘 후 진행

 

IF..ELSE..


조건에 따라 분기하는 함수이다. 다른 프로그래밍 언어와 같다. 예시는 다음과 같다.

SET SERVEROUTOUT_ON;
DECLARE
	var1 NUMBER(5) ;

BEGIN
    var1 := 100
    IF var1 = 100 THEN
        DBMS_OUTPUT.PUT_LINE('100입니다');
    ELSE
        DBMS_OUTPUT.PUT_LINE('100이 아닙니다');
    END IF;
END;
#결과 값:
100입니다.

 

WHILE


다른 프로그래밍 언어의 WHILE과 동일한 개념이다. WHILE문의 식이 참인 동안에 계속 반복되는 반복문이다.

예시는 아래와 같다.

WHILE, LOOP, END LOOP 부분을 잘 살펴보면 된다.

SET SERVEROUTOUT ON;
DECLARE
    iNum NUMBER(3);
    hap NUMBER(5)
BEGIN
    iNum := 1;
    hap := 0;
    WHILE iNum <= 100
    LOOP
        hap := hap + iNum;
        iNum := iNum + 1;
    END LOOP;
    DBMS_OUPUT.PUT_LINE(hap);
END;

 


 

반응형