web-dev-qa-db-ja.com

oracle SQL plus SQLファイルでコマンドを終了する方法は?

コマンドが少ないSQLファイルがあります。
スクリプトの行を終了する正しい方法は何ですか?
スラッシュ[/]セミコロン[;]両方ですか?
通常のSQLとストアドプロシージャコードの間に違いはありますか?
ありがとうございました

11
JavaSheriff

通常のSQLステートメントの場合、行自体の/、またはコマンドの最後の;のいずれかが正常に機能します。

CREATE FUNCTIONCREATE PROCEDURECREATE PACKAGECREATE TYPE、匿名ブロック(DECLARE/BEGIN/END)、;はコマンドを実行しません。 PL/SQLは行末記号としてセミコロンを使用するため、これらの文ではコマンド終止符としての使用を抑制する必要があります。したがって、これらの場合、コマンドを実行するには/を使用する必要があります。

私の経験では、人々は可能な場合はセミコロンを使用し、必要な場合にのみスラッシュを使用することを好みます。

SETEXECUTEなどのSQLPlusクライアントコマンドの場合、コマンドターミネータはまったく必要ありませんが、習慣からセミコロンで終了することがよくあります。

28
Dave Costa

;これは、SQLコマンドを終了する方法です。PLSQLプロシージャについても同じことが言えます。

_select * from dual;_

_select sysdate from dual;_

_select table_name from user tables;_

exec dbms_output.putline('Hello');

2
Daniel Haviv

通常は「; "SQLステートメントを終了するには、
ただし、作成functionstriggersproceduresの場合は、「/ "の後に" ; "でSQLステートメントを終了します。
"/ "は、Oracle SQL Developer、Toadなどの一部の開発者ツールを使用する場合は必要ない場合がありますが、Linuxマシンで直接クエリを実行する場合は必須です。

1
madhavan