- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:環境変数に実行結果を入れたい)
DOSコマンドでOracleのステータスを確認する方法
このQ&Aのポイント
- DOSコマンドを使用してOracleのステータス(正常か異常か)を確認する方法について説明します。バックアップソフトを使用する際、Oracleを停止してバックアップ完了後に、ステータス確認を行い、異常ならエラー処理、正常なら次の処理に移行することができます。
- また、環境変数に実行結果(findstrコマンド結果)を入れる方法についても説明します。特定のメッセージを抽出し、それを利用してOracleの動作確認を行うことができます。
- 具体的なコマンドとしては、以下のようなものが考えられます。 ```set ora=sqlplus sys/system as sysdba | findstr /L に接続されました | echo %ora%```
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
DOSコマンド戻り値は環境変数 ERRORLEVEL に保存されます。 Findstrコマンドの場合(ざっくり言えば)見つかったら0、見つからなかったら1が入ります。 よって sqlplus -l sys/system as sysdba @conchk.sql findstr "に接続されました" conchk.log set ora=%ERRORLEVEL% echo %ora% if %ora%==0 ( echo [%ora%] 正常 ) else ( echo [%ora%] 異常 ) のような感じになるかと思われます。
その他の回答 (1)
- Chronos198
- ベストアンサー率30% (105/349)
回答No.2
sqlplus -l sys/system as sysdba @conchk.sql この@conchk.sqlというのは引数ファイルです。 中に記述されているSQLを実行します。 接続チェックをするには繋いで、切って、結果チェックになりますので、 繋いだ後に切る為に処理が必要となります。 何か適当に切るなり結果を吐くなりするようconchk.sqlを作成してください。
お礼
早速の回答ありがとうございました。 ご教授いただいた手順でsqlplusを実行するとエラーになってしまいました。 ■■■■■ 基のソース ■■■■■ sqlplus -l sys/system as sysdba @conchk.sql findstr "に接続されました" conchk.log set ora=%ERRORLEVEL% echo %ora% if %ora%==0 ( echo [%ora%] 正常 ) else ( echo [%ora%] 異常 ) ■■■■■ 実行結果 ■■■■■ C:\>sqlplus -l sys/system as sysdba @conchk.sql SQL*Plus: Release 10.2.0.3.0 - Production on 木 2月 24 10:44:52 2011 Copyright (c) 1982, 2006, Oracle. All Rights Reserved. Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production With the Partitioning, OLAP and Data Mining options に接続されました。 SP2-0310: ファイル"conchk.sql"をオープンできません。 SQL> findstr "に接続されました" conchk.log SP2-0734: "findstr "..."で開始するコマンドが不明です - 残りの行は無視されました 。 SQL> set ora=%ERRORLEVEL% SP2-0735: 不明なSETオプション("ora=%ERROR..."で開始)です。 SQL> echo %ora% SP2-0042: 不明なコマンドです("echo %ora%")。行の残りは無視されました。 SQL> if %ora%==0 ( echo [%ora%] 正常 ) else ( echo [%ora%] 異常 ) 上記のソースを参考に以下のコマンドを実行しましたが、 「異常」になります。 ■■■■■ 実行コマンド ■■■■■ sqlplus=sqlplus sys/system as sysdba | findstr /L に接続されました set ora=%ERRORLEVEL% echo %ora% if %ora%==0 ( echo [%ora%] 正常 ) else ( echo [%ora%] 異常 ) ■■■■■ 結果 ■■■■■ C:\>sqlplus=sqlplus sys/system as sysdba | findstr /L に接続されました C:\>set ora=%ERRORLEVEL% C:\>echo %ora% 1 C:\>if %ora%==0 ( echo [%ora%] 正常 ) else ( echo [%ora%] 異常 ) [1] 異常 ■■■■■ お願い ■■■■■ 上記スクリプトで正常になる方法をご教授願います。 どうぞよろしくお願いします。