teratail header banner
teratail header banner
質問するログイン新規登録
バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Q&A

解決済

1回答

233閲覧

想定していたerrorlevelが返ってこない

tefutefute-fu

総合スコア3

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

0グッド

0クリップ

投稿2025/06/23 01:56

0

0

実現したいこと

batファイルを起動してsqlplusでOracleデータベースに接続し、接続できなかったらその旨のメッセージを出力する。

発生している問題・分からないこと

エラーが表示されるかを確かめていたら、データベースへ接続できていないのに
接続出来たときに出力させるメッセージが出てしまう。

エラーメッセージ

error

1ERROR: 2ORA-01017: invalid username/password; logon denied 3 4 5SP2-0306: オプションが無効です。 6使用方法: CONN[ECT] [{logon|/|proxy} [AS {SYSDBA|SYSOPER|SYSASM|SYSBACKUP|SYSDG|SYSKM|SYSRAC}] [edition=value]] 7条件 <logon> ::= <username>[/<password>][@<connect_identifier>] 8 <proxy> ::= <proxyuser>[<username>][/<password>][@<connect_identifier>] 9

該当のソースコード

batファイル

1@echo off 2setlocal enabledelayedexpansion 3chcp 65001 > nul 4set NLS_LANG=Japanese_Japan.AL32UTF8 5 6 7:: Oracle接続情報 8set HOST=******* 9set PORT=**** 10set SERVICE=**** 11 12set USER=*** 13set PASS=*** 14 15echo 接続テスト開始 16echo SELECT 1 FROM DUAL; | sqlplus -s %USER%/%PASS%@//%HOST%:%PORT%/%SERVICE% > result.log 2>&1 17 18if %ERRORLEVEL% NEQ 0 ( 19 echo データベースに接続できませんでした。 20) else ( 21 echo データベースに接続出来ました。 22) 23 24pause 25endlocal 26exit /b

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

あえてパスワードを間違えた状態でbatファイルを実行した結果、「データベースに接続出来ました。」
と表示されます。エラーメッセージは、result.logに出力されているものです。
Oracleに接続できている場合は、result.logにはエラーメッセージは出力されていませんでした。
初心者なので原因が分かりません、よろしくお願いします。

補足

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bsdfan

2025/06/23 04:52 編集

ログイン失敗なら非ゼロが返ってきそうですが、コマンドオプションが無効というエラーなのでERRORLEVELがゼロなのではないでしょうか。環境変数で渡しているパラメータに特殊文字(記号とかスペースとか)が入っていたりしませんか?その場合エスケープしてやったり、クォートしてやる必要があると思います。
guest

回答1

0

ベストアンサー

標準エラー出力して中身をみて分岐してみては?

投稿2025/06/23 03:13

yambejp

総合スコア117906

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tefutefute-fu

2025/06/23 05:50

回答ありがとうございます。 解決できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問