SQL*Plus > SET SQLTERMINATOR

SQLTERMINATOR システム変数

SQLTERMINATOR は SQL、PL/SQL の終端文字に使用される文字を設定する。

  • 短縮形は SQLT
  • デフォルト値 ON でセミコロン(;)

SET SQLTERMINATOR コマンド

SET SQLTERMINATOR コマンドの構文

SET SQLT[ERMINATOR] 終端文字
             ON
             OFF

終端文字は単一の文字で英数字、空白文字は使用できない。デフォルトは ON に設定されている。

ON と OFF : OFF にした場合には1行に複数の SQL ステートメント、PL/SQL ステートメントを記述できない上に1行の操作では SQL 実行もされない。SQL 文を実行するには SQL 文+改行+スラッシュ(/) の操作が必要となる。
ON にした場合にはセミコロン(;) がステートメントの終端文字として複数のステートメントを記述できる。
SET SQLTERMINATOR ON とは SET SQLTERMINATOR ; と同じ意味になる。

SQLTERMINATOR の設定例

SQLTERMINATOR を OFF に設定する。
SQL 文の最後にセミコロン(;) を記述しても実行されない。

SQL> SET SQLTERMINATOR OFF
SQL> select * from account;
  2  /
        ID USER_NAME
---------- ----------------------------------------
         1 松村 大和
         2 小柳 豊
         3 鹿島 里奈
         4 東野 美桜
         5 長谷川 菜子
 
SQL>

上記例ではセミコロン(;) がステートメントとして受け入れられてエラーにならないのは SQL*Plus コマンドのセパレータとして解釈されているためであると思われる。SQL*Plus コマンドのセパレータを別の文字に変えると・・・

SQL> SET SQLTERMINATOR OFF
SQL> SET CMDSEP +
SQL> select * from account;
  2  /
select * from account;
                     *
行1でエラーが発生しました。:
ORA-00911: 文字が無効です。
 
SQL> select * from account+
  2  /
        ID USER_NAME
---------- ----------------------------------------
         1 松村 大和
         2 小柳 豊
         3 鹿島 里奈
         4 東野 美桜
         5 長谷川 菜子
 
SQL> call dbms_output.put_line('aaa');
  2  /
call dbms_output.put_line('aaa');
                                *
行1でエラーが発生しました。:
ORA-00911: 文字が無効です。


SQL*Plusコマンドの区切り文字を設定するには・・・

スポンサード リンク

ITエンジニア キャリアアップ・転職・求人情報

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ OTN Software Kit (開発者ライセンス)
Google