행 코멘트
연속한 2개의 하이픈('--') 이후는 그 행의 끝까지 코멘트(주석)화 된다.
블록 코멘트
slash, asterisk('/*')과 asterisk, slash('*/') 로 둘러싸인 블록은 comment out 된다.
-- 행 코멘트의 예Tips; .... /* 블록 코멘트의 예 블록 코멘트 .... */ ; ...
PL/SQL 스토아드 서브 프로그램으로 블록 코멘트를 사용하면, 에러 발생시 메세지에 출력되는 에러행의 위치가
올바른 행 번호가 되지 않는다. 이것은 블록 코멘트의 행 만큼 어긋나는 것인데 블록 코멘트가 컴파일시에 삭제되고
있기 때문이라고 생각된다.
그러나 행 코멘트의 경우에, 차이가 발생하지 않는다. PL/SQL의 개발에는 블록 코멘트보다 행 코멘트만 사용하는
것이 좋다.
PL/SQL 블록
최소의 블록 구문
아무것도 하지 않는 익명 블록
BEGIN -- NULL = NOP ... NO OPERATION NULL; END; /
변수를 선언하는 블록
스토어드 서브 프로그램과 같이 서버에 프로그램을 실행하지 않고 변수를 사용하는 경우 SQLPlus로 실행할 수 있다.
스토어드 서브 프로그램과 같이 서버에 프로그램을 실행하지 않고 변수를 사용하는 경우 SQLPlus로 실행할 수 있다.
DECLARE vNum NUMBER(2); BEGIN vNum := 1 ; DBMS_OUTPUT.PUT_LINE('수치=' || vNum); END;
이 프로그램을 SQL*Plus로 실행하는 경우에는,
SET SERVEROUTPUT ON
이라고하는 DBMS_OUTPUT의 출력 명령을 디스플레이에 표시시키는 설정을 사전에 해 두지 않으면 결과가 표시되지 않는다.
보충
위의 예를 스토아드 프로시져로 하고 싶은 경우에는, 아래와 같이
DECLARE를 CREATE PROCEDURE DISP_NUMBER IS 로 변경한다.
CREATE PROCEDURE DISP_NUMBER IS vNum NUMBER(2); BEGIN vNum := 1 ; DBMS_OUTPUT.PUT_LINE('수치=' || vNum); END;이것을 호출하려면
CALL DISP_NUMBER() ; 또는, EXECUTE DISP_NUMBER
과 같이 실행한다. CALL 명령은 Oracle 9i 이후
다음은 Call 과 Execute 의 차이에 대해서.