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に帰ってくる。<?li>
いきさつ
連携してるDB(Oracle)のテーブルをalterすることになった
alter文を書いたsqlをもらったので流してテストしたい
そういえばファイルを流し込んだことないな
調べたらやり方出てきた
twitterにメモった
「@@もあるよ」とご指摘をいただく
ほほう、ところでカレントディレクトリを調べるには?
調べたらやり方出てきた
メモしておこう
ご指摘いただいた @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 / @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
リファレンス
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19277-01/ch12.html