PL/SQL の基本要素:コメント、PL/SQLブロック
行コメントとブロックコメント
行コメントとブロックコメントが用意されている。
- 行コメント
- 連続した 2つのハイフン('--')の以降はその行の最後までコメント化される。
- ブロックコメント
- スラッシュ、アスタリスク('/*') とアスタリスク、スラッシュ('*/')で囲まれたブロックはコメントアウトされる。
-- 行コメントの例
<statement> ;
....
/* ブロックコメントの例
ブロックコメント
....
*/
<statement> ;
...
Tips
PL/SQL ストアド・サブプログラムで ブロックコメントを使用すると、エラー発生時のメッセージに出力されるエラー行の位置が正しい行番号にならない。これはブロックコメントの行数分だけ、ずれることから考えるとブロックコメントがコンパイル時に削除されているためだと思われる。
行コメントの場合には、なぜか、このずれは発生しない。PL/SQL の開発には行コメントだけを使用する方がよいだろう。
PL/SQL ブロック
最小のブロック構文
何もしない無名のブロック
BEGIN
-- NULL = NOP ... NO OPERATION
NULL;
END;
/
変数の定義をともなうブロック
ストアド・サブプログラムのようにサーバーにプログラムを格納しないで変数を使用する場合
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 の違い
関連事項