ページの先頭行へ戻る
Symfoware Server V12.3.0 SQLTOOLユーザーズガイド
FUJITSU Software

2.2.8 複数行指定

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で使用時の指定

入力ファイル(createproc.sql)の作成
--  プロシジャを定義
EXEC SQL 
CREATE PROCEDURE STOCKS.PROC001 ( IN  KEY1  INTEGER ) 
COMMENT '在庫不足の製品の発注依頼' 
BEGIN 
DECLARE 在庫数量変数 INTEGER; 
SELECT  在庫数量  INTO  在庫数量変数 FROM  STOCKS.在庫表; 
END 
END-EXEC; 
INFILE文の指定
$ 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)を記述した行にはコメント以外の文字列を記述することはできません。