月間13,000PV達成! 収益は毎日発生中! ブログランキング上位! 記事は毎日更新中! ギランバレー症候群に関する情報を集めています

【Batch】バッチからSQLを実行する方法!Oracle編!

  • 2018.07.11
  • IT
【Batch】バッチからSQLを実行する方法!Oracle編!
Advertisement

 

WindowsバッチからSQLを実行ってどうやるねん。。

そんな疑問をお持ちのあなたへ、今回はバッチからSQLを実行する方法をご紹介したいと思います。

今回はOracle編なので、バッチからSQL*Plusを実行する形になります。

 

 

バッチからSQLを実行する流れ

Oracleの場合、SQLを実行する際はSQL*Plusを利用します。

このSQL*Plusは実行時にSQLファイルを引数として渡すことができます。

つまり、SQLファイルをバッチで作成し、作成したSQLファイルをSQL*Plusに渡してあげればよいわけです。

以下が処理の流れです。

バッチでSQLファイルを作成する

作成したSQLファイルをSQL*Plusに渡す

SQL*Plusを実行する

ログを出したい場合は適宜対応

 

 

SQLを実行するバッチのソースコード

以下がソースコードになります。

 

 

解説

38~40行目でSQLファイルの中身を作成します。

「>>」により、追記モードでファイルに文字列を出力しています。

echo set echo off head off feed off recsep off >> %OUTPUT_FILENAME%
echo DELETE FROM T_SAMPLE; >> %OUTPUT_FILENAME%
echo exit >> %OUTPUT_FILENAME%

 40行目の「exit」は記載しないとSQL*Plusが終了しないため記載しましょう!

 

45行目でSQL*Plusを実行します。

sqlplus %ORA_USER_NAME%/%ORA_PASSWORD%@%ORA_IP_ADDR%:%ORA_PORT_NUMBER%/%ORA_SERVICE_NAME% @%OUTPUT_FILENAME%

 

50行目でSQLファイルを削除します。

del %OUTPUT_FILENAME%

 SQLファイルはSQL*Plusで使用するために一時的に作成しただけなので、処理終了後は削除します。

 

 

まとめ

バッチからSQLを実行する方法は、分かってしまえば比較的簡単です。

特に、バッチでファイルを作成するなど様々な処理が行えるので、バッチをうまく活用することで自由自在となります。

是非参考にしてみてください!

Travelerを知らないの?