- ベストアンサー
バッチからsqlplusの接続エラーの検知について
バッチからsqlplusの接続エラーの検知について 環境:Xp、Oracle11g バッチからsqlpulusを起動してPL/SQLを動かしてるのですが DB接続に失敗した時に%ERRORLEVEL%では接続エラー時には 0が戻ってきてしまいエラーを検知できませんでした。 DB接続に失敗した場合、検知する方法を模索しております。 識者の方、助言を頂ければ幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
今、環境が無くて確認できないんですが、 sqlplus -L /nolog WHENEVER OSERROR exit 9 WHENEVER SQLERROR exit 9 connect ユーザ名/パスワード ではどうでしょうか?特にsqlplusの-Lオプションは使えそうな感じですが。
その他の回答 (1)
- yamada_g
- ベストアンサー率68% (258/374)
11gの環境が無いので10g(10.2.0.1.0)での検証ですが。 接続エラーの場合も%errorlevel%は1が戻ってきています。 以下がその結果です。 OSは WindowsXP Pro SP3です。 D:\>echo %errorlevel% 0 D:\>type conn.bat echo off sqlplus -l hoge/hoge@hoge @hoge.sql if %errorlevel% EQU 1 ( echo "エラー" ) D:\>conn.bat D:\>echo off SQL*Plus: Release 10.2.0.1.0 - Production on 木 8月 19 17:27:51 2010 Copyright (c) 1982, 2005, Oracle. All rights reserved. ERROR: ORA-12154: TNS: 指定された接続識別子を解決できませんでした SP2-0751: Oracleに接続できませんでした。SQL*Plusを終了します。 "エラー" D:\>echo %errorlevel% 1 可能であれば、問題の無い範囲でバッチファイルの中身を載せてみてはいかがでしょうか。