SQL*Plus上でSQLファイルを実行する

Oracle DBの対話型シェル「SQL*Plus」上で、SQL文が記入されたスクリプトファイルを実行する必要が出てきた。ご存知の方にはなにも珍しくない内容だと思うが、私には初めての作業だったのでメモっておく。

やりかた

絶対パスの場合
SQL> @/path/to/sql/file/test.sql
相対パスの場合
SQL> HOST pwd
/path/to/sql/file

SQL> @@test.sql

注意

  • 行末の「;」を必ず記入する
  • 「HOST」はOSのコマンドを実行する命令。
    • HOST {command} : commandを実行する。
    • HOST : 単体で実行するとプロンプトがシェルに移る。exitするとSQL*Plusに帰ってくる。

いきさつ

ご指摘いただいた @Nakunaru@onote2 に感謝します。

Links

参照サイト

@ : ORACLE/オラクルSQLリファレンス(SQLPLUS)
http://oracle.se-free.com/utl/C1_sql_run.html

HOST : ORACLE/オラクルSQLリファレンス(SQLPLUS)
http://oracle.se-free.com/utl/C1_os_cmd.html

twitter

Twitter / @SHIOYA, Hiromu: めも:sqlplus内でファイルからSQLを実行する …
http://twitter.com/#!/kwappa/status/27556967388020737

Twitter / @Nakunaru: @kwappa アットマーク二個とかもできるから場合 …
http://twitter.com/#!/Nakunaru/status/27566032897966080

Twitter / @Tetsuya ONODA: “@kwappa: めも:sqlplus内でファイル …
http://twitter.com/#!/onote2/status/27594982818840577

リファレンス

SQL*Plusコマンド・リファレンス
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19277-01/ch12.html

@
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19277-01/ch12.html#19936

@@
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19277-01/ch12.html#20476

HOST
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19277-01/ch12.html#33844

Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です