4.3 継続行の扱い

<この節の構成>
(1) CREATE PROCEDURE,CREATE FUNCTION,CREATE TYPE,及びCREATE TRIGGER以外のSQLの場合
(2) CREATE PROCEDURE,CREATE FUNCTION,CREATE TYPE,及びCREATE TRIGGERの場合
(3) SQL文の途中でEOFを検知した場合

(1) CREATE PROCEDURE,CREATE FUNCTION,CREATE TYPE,及びCREATE TRIGGER以外のSQLの場合

1行の最後にセミコロン(;)があれば,そこまでをSQL文とみなして処理します(セミコロンの後ろの空白及び制御文字は無視されます)。セミコロンがない場合は,その行は次の行に継続しているものとして扱われます。

(例)

 CREATE TABLE T1(C1 INT,     (継続)
              C2 CHAR(10),   (継続)
              C3 CHAR(10));  (SQL文の終了)

SQL文中に引用符(")で囲まれたセミコロンが行の最後に記述してある場合は,SQL文の終了とみなされます。

(2) CREATE PROCEDURE,CREATE FUNCTION,CREATE TYPE,及びCREATE TRIGGERの場合

CREATE PROCEDURE,CREATE FUNCTION,CREATE TYPE,及びCREATE TRIGGERでのSQL文の終了指定を次の表に示します。1行の最後に次の表に示す文字列があれば,そこまでをSQL文とみなします(セミコロンの後ろの空白及び制御文字は無視されます)。

表4-1 CREATE PROCEDURE,CREATE FUNCTION,CREATE TYPE,及びCREATE TRIGGERでのSQL文の終了指定

SQL文-eオプション
指定なし指定あり
CREATE PROCEDUREEND_PROC;END_PROC;
CREATE FUNCTIONEND_PROC;END_PROC;又はEND_FUNC;
CREATE TYPEEND_PROC;END_PROC;又はEND_TYPE;
CREATE TRIGGEREND_PROC;END_PROC;又はEND_TRIG;

CREATE PROCEDURE,CREATE FUNCTION,CREATE TYPE,及びCREATE TRIGGERの場合は,1行の最後にセミコロンがあっても次の行に継続しているものとして扱われます。

(例)

 CREATE PROCEDURE P1()                  (継続)
 BEGIN                                  (継続)
   INSERT INTO T1(C1) VALUES(10);       (継続)
   UPDATE T1 SET C1 = 0 WHERE C1 < 0;   (継続)
 END                                    (継続)
 END_PROC;                              (SQL文の終了)

SQL文中に引用符(")で囲まれたEND_PROC;が行の最後に記述してある場合は,SQL文の終了とみなされます。

(3) SQL文の途中でEOFを検知した場合

SQL文の途中(セミコロンがない状態)でEOFを検知した場合,コマンドの終了とみなされ,それまでに入力したSQL文が実行されます。

(例)

CREATE TABLE T1(C1 INT,             (継続)
               C2 CHAR(10)         (継続)
EOF                                 (コマンドの終了)