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に帰ってくる。<?li>

いきさつ

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

参照サイト

@ : 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