rdbexecsqlコマンドにおいて、SQL先頭子(EXEC SQL)およびSQL終了子(END-EXEC)を使用することで、プロシジャルーチン定義時の複数行指定が可能です。
“EXEC SQL”から“END-EXEC”までの範囲が、1文として扱われます。
複数行指定を、対話型で使用した例と、INFILE文を利用して入力ファイルに指定した例を以下に示します。
対話型で使用時の指定
$ rdbexecsql -d SQL>EXEC SQL 2 CREATE PROCEDURE STOCKS.PROC001 ( IN KEY1 INTEGER ) 3 BEGIN 4 DECLARE 在庫数量変数 INTEGER 5 SELECT 在庫数量 INTO 在庫数量変数 FROM STOCKS.在庫表 : 10 END 11 END-EXEC :
INFILEで使用時の指定
-- プロシジャを定義 EXEC SQL CREATE PROCEDURE STOCKS.PROC001 ( IN KEY1 INTEGER ) COMMENT '在庫不足の製品の発注依頼' BEGIN DECLARE 在庫数量変数 INTEGER; SELECT 在庫数量 INTO 在庫数量変数 FROM STOCKS.在庫表; END END-EXEC;
$ rdbexecsql -d SQL>INFILE /home/user/createproc.sql EXEC SQL CREATE PROCEDURE STOCKS.PROC001 ( IN KEY1 INTEGER ) BEGIN DECLARE 在庫数量変数 INTEGER SELECT 在庫数量 INTO 在庫数量変数 FROM STOCKS.在庫表 END END-EXEC SQL>EXECUTE?(y|n|q)=>
注意
SQL先頭子(EXEC SQL)の“EXEC”と“SQL”は同一行に記述する必要があります。
SQL先頭子(EXEC SQL)を記述した行にはコメント以外の文字列を記述することはできません。