Windowsが立ち上がった直後に自動でsqlplusによりSQL発行するバッチを動かしています。当然ユーザ名とパスワードをsqlplusの引数として与えるのですが、日によってログインに失敗してsqlplusがユーザ名を要求する画面になりバッチが途中で止まってしまうことがあります(朝出社するとそこで止まっている)。
これを防ぐためにはOracleの初期化処理が完全に終わったことを確認してからsqlplusを叩きたいのですが、バッチファイル内で自動確認する何かいい方法はないでしょうか?
tnspingをバッチファイル内で実行し、表示される文字列を固定のファイルに吐き出して、その吐き出されたファイルの中をFINDでOKを検索して、ヒットしたらsqlplusで実行すればいけそうな気がします。
会社や客先にバレたくなく匿名にしましたが、匿名質問への回答いただきありがとうございます。
2017/05/19 03:46:10なるほど。そういうコマンドがあるんですね。
DBへのネットワーク疎通のテストコマンドなので、ログインできるかどうかまでテストできるのか、ちょっと試してみます。
ありがとうございました。
検索でここに来た人のためにその後の顛末を記載しておきます。
2017/05/22 17:21:22tnspingをキーワードにして検索したところ、以下のページが見つかりました。
http://otn.oracle.co.jp/forum/thread.jspa?threadID=6004177&switchMode=threaded
SQLスクリプトによりログオンを試みて、成功/失敗をテストするバッチが紹介されています。
まだ試していませんが、これでうまくいきそうな感じです。
回答者さん、いい糸口を与えていただき感謝です。ありがとうございました。