select * from test where test like '%test%'
これは、sqldeveloper を使用して期待されるデータを返しますが、sqlcl を使用してコマンド ラインからこのコマンドを入力して Enter キーを押すと、2 が表示されます。もう一度 Enter キーを押すと、3 が表示されます。
ここで何が欠けていますか?これをカバーするsqlclドキュメントには何もありません。
select * from test where test like '%test%'
これは、sqldeveloper を使用して期待されるデータを返しますが、sqlcl を使用してコマンド ラインからこのコマンドを入力して Enter キーを押すと、2 が表示されます。もう一度 Enter キーを押すと、3 が表示されます。
ここで何が欠けていますか?これをカバーするsqlclドキュメントには何もありません。
SQL*Plus と同じように動作します。コマンド バッファに 1 行のテキストを入力しましたが、クライアントにそれが完全なステートメントであることを伝えていないか、実行するように伝えていません。より多くの入力が必要であることを示す行番号プロンプトを表示しています。
ステートメントをセミコロンで終了するか、スラッシュ ( /
) を単独で新しい行に置くことができます。そのドキュメントから:
SQL コマンド
の終了 SQL コマンドは、次の 3 つの方法のいずれかで終了できます。
- セミコロン (;)
- 単独の行にスラッシュ (/) を付ける
- 空行あり
セミコロン (;) は、コマンドを実行することを SQL*Plus に伝えます。コマンドの最後の行の末尾にセミコロンを入力し、Return キーを押すか、[実行] をクリックします。SQL*Plus はコマンドを処理し、コマンドを SQL バッファに格納します。... セミコロンを入力する前に誤って Return キーを押すと、コマンドの次の行の行番号が表示されます。セミコロンを入力して Return キーをもう一度押すか、[実行] をクリックしてコマンドを実行します。
行のスラッシュ (/) 自体も、コマンドを実行する必要があることを SQL*Plus に伝えます。コマンドの最後の行の最後で Return キーを押します。SQL*Plus により、別の行番号が表示されます。スラッシュを入力して Return キーをもう一度押すか、[実行] をクリックします。SQL*Plus はコマンドを実行し、それをバッファに格納します。
SQL Devleoper もこれらをサポートしており、セミコロン (デフォルト) を SQL 終了文字として使用し、セミコロンまたはスラッシュでステートメントを終了できるようにしています。ただし、スクリプトの最後のステートメントから省略できますが、SQL*Plus では省略できません。その場合、ステートメントは実行されません。その点でも SQLcl は SQL*Plus と同じように動作すると思います。
(SQLcl はまったく同じではないことは承知していますが、SQL*Plus のドキュメントのほとんどは、SQL Developer とその兄弟である SQLcl に適用されます。詳細については、ThatJeffSmith のブログを参照してください。)
セミコロンでクエリを終了する必要があると思われます。
select * from test where test like '%test%';
バッファーをロードしていて、ツールが次の行を要求しています。バッファにあるものを実行するには、スラッシュ ('/') を入力して Enter キーを押します。