【Oracle】スクリプトの一括実行

2020年9月21日

魔理沙が、霊夢とチルノに大量のPL/SQLコンパイルを頼んでますが・・・

魔理沙
魔理沙

チルノ、霊夢~
昨日まで作成したPL/SQLのスクリプトファイル、サーバーに上げてあるから
午前中に全部コンパイルしておいてくれ!
600本あるからよろしく!二人で協力してやってくれ!

チルノと二人で600本!?

あたいの高速マウスさばきが唸るぜ!

こいつ、作業量わかってないな・・・・

魔理沙
絶対やりきれないわ!
無理よ!

スクリプトを実行するスクリプトを作成すれば
いけるぜ!
急ぐ人は「まとめ」を見てくれ!

通常のスクリプト実行方法

「SQLPlus」から600本
頑張れば良いんじゃないの~

だから死ぬって!
私は嫌よ

念の為、単体のスクリプト実行方法も確認しておくぜ
SQLPlusにログインして、「@」に続けてスクリプトファイルを指定する
ファイルの指定は絶対パスでも相対パスのどちらでも良いぜ

これで、1本終わりってのが問題なのよね

一括のスクリプト実行方法

ここから一括のスクリプト実行方法をするぜ
下の様な「1.sql」~「5.sql」スクリプトがあるとするだろ・・・
それとは別に「コンパイル.sql」みたいな名前で、もう1つスクリプトを作るぜ

魔理沙
魔理沙

「コンパイル.sql」の中はこんな感じだぜ
「@@」をつけてスクリプトファイル名を指定する

この「コンパイル.sql」スクリプトを、
通常のスクリプト実行方法で実行するぜ
すると、「1.sql」~「5.sql」が一括で実行されるぜ!

これは天才のあたいも
知らなかったデスネ

なんで片言なのよ。
「コンパイル.sql」の中に記述しているファイル指定は
絶対パスでなくて良いかしら?

「コンパイル.sql」と同じ階層にあるファイルは
相対パス扱いになるから、ファイル名だけで良いぜ!

ナルホドデスネ!

Windowsのバッチファイルの作成

魔理沙
魔理沙

毎回、SQLPlusの起ち上げ面倒だろ!
Windows場合、下みたいなバッチファイルを作ると良いぜ!
「コンパイル.sql」と同じ階層に作ろうな!

魔理沙
魔理沙

1行目、2行目はMS-DOSのコマンドで、キーを押下するまで処理が止まるぜ!
2つぐらい記述しておくと安心だな
最後の行は、通常のスクリプト実行だな
バッチファイル記述のポイントは「@」の後の「.」だぜ!

あら簡単!できたわ!
朝飯前ね

昼飯前だけどね
今思ったんだけど、OSのコマンドラインで
回したらどうかしら?

コマンドラインで回すと、毎回、SQL Plusにログイン・ログアウトを
繰り返して、サーバーに負荷がかかるしな
それにWindowsだったりLinuxだったり、コンパイル実行端末は変わるだろうからOracleの機能ベースで実施した方が良いな!

にゃるほど!
それじゃ、作業に入るね~

まとめ

まとめると、SQL Plusから
◆通常のスクリプト実行
@c:\sqlplus\1.sql
◆一括のスクリプト実行
スクリプトの中で「@@」を付けてファイル名を指定
かしら?
今回はPL/SQLのコンパイルだったけど、DDLとかの実施にも
使えそうね

魔理沙
魔理沙

そうだな!
じゃあ、あとはよろしくな!

ラジャっす!

サイトマップ

2020年9月21日Oracle,PL/SQL,SQL,データベース,プログラム

Posted by こっぷ