SSJ Tech Lab - Oracle Database テクニカルラボ

SQLを定期的に等間隔で実行する方法(Linux-while)

対応バージョン

Oracle Linux 6

2016-06-15記事公開

LinuxやUnixにて等間隔に繰り返しSQLを実行したい場合、OSの機能を利用してSQLのループ処理をすることが可能です。
cronなどを利用することもできますが、お手軽にできる方法としてwhileループを利用する方法があります。

Linuxでのwhileループ実行例

ループコマンド

ループ実行の仕組み

SQL*Plusでは標準入力を受け付けた場合、そのSQLの実行をします。

ここではwhileでのループ時にechoした内容が標準出力として出力され、パイプ(|)を通してsqlplusに渡されています。

sqlplusに-Lと-sオプションを指定していますが、ここでの動作とは無関係です。(sqlplusの-Lはログイン失敗時のユーザ名の再入力リクエストをなくします。-sはプロンプト(SQL>)やログイン時のメッセージを出力しません。)

他にsqlplusへの標準入力の渡し方は以下のような方法があります。

パイプを使用する(catを使用した方法)

ファイルの内容を直接リダイレクションで渡す

ヒアドキュメントを使用する

SQLEOFに挟まれた文を実行します。


関連記事

関連記事が存在しません