セミコロンまたは次の行のスラッシュでOracle SQLステートメントを終了することの違いは何ですか?


8

次の2つのクエリは、sql * plusで実行すると同等のように見えます。

1。

select * from user_tables;

2。

select * from user_tables
/

両方のバージョンに違いはありますか?

回答:


11

単一のSQLステートメントに違いはありません。独自の行の「/」文字は、SQL * Plusにバッファ内のコマンドを実行するよう指示します。ほとんどのSQLステートメントの最後にあるセミコロンは、「/」の省略形として使用できます。CREATE TYPEただし、PL / SQLブロックを実行する場合、またはのような少数のSQLステートメントを実行する場合は、「/」を使用する必要があります。

SQL> begin
  2    null;
  3  end;
  4  /

PL/SQL procedure successfully completed.

SQL> create type foo as object (
  2    col1 number,
  3    col2 number );
  4  /

Type created.

ツールが異なると、スクリプトで複数のSQLおよびPL / SQLステートメントを実行する方法が少し異なる場合があるため、これはSQL * Plus固有であることに注意してください。


それはSQL Serverに似ていますGOか?(基本的に、バッチセパレーター。)
Nick Chammas

@NickChammas-多かれ少なかれ、はい。
ジャスティンケイブ

5

そして、ジャスティンが言ったことに加えて- /はバッファ内のものを実行するので、前のコマンドを編集した後、または同じコマンドを複数回実行するために使用することもできます。

edsqlplus を呼び出すと、AFIEDT.BUF現在のディレクトリに一時ファイルが書き込まれ、最後に送信されたコマンドを編集するためのエディター(vi、メモ帳など)が表示されます。エディターを終了した後/、変更されたバッファーを送信するために使用します。


1
ノスタルジックなbkriszio.blogspot.com/2006/11/…が表示されます。
bernd_k
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.