1行の最後にセミコロン(;)があれば,そこまでをSQL文とみなして処理します(セミコロンの後ろの空白及び制御文字は無視されます)。セミコロンがない場合は,その行は次の行に継続しているものとして扱われます。
CREATE TABLE T1(C1 INT, (継続)
C2 CHAR(10), (継続)
C3 CHAR(10)); (SQL文の終了)
SQL文中に引用符(")で囲まれたセミコロンが行の最後に記述してある場合は,SQL文の終了とみなされます。
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 PROCEDURE | END_PROC; | END_PROC; |
CREATE FUNCTION | END_PROC; | END_PROC;又はEND_FUNC; |
CREATE TYPE | END_PROC; | END_PROC;又はEND_TYPE; |
CREATE TRIGGER | END_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文の終了とみなされます。
SQL文の途中(セミコロンがない状態)でEOFを検知した場合,コマンドの終了とみなされ,それまでに入力したSQL文が実行されます。
CREATE TABLE T1(C1 INT, (継続)
C2 CHAR(10) (継続)
EOF (コマンドの終了)