2012-03-28 22 views
0

DOS BATコマンド:確認SQL PLUS SQLクエリ私は私の.batファイルで次のコマンドを作成していた

@echo select count(*) from table where column1 = 'abc'; | sqlplus username/[email protected] 

結果に応じて、私はそれ異なるSQL文必要、返されました。どうしたらいいですか?

返される結果セットが0の場合は、.batファイルを終了する必要があります。結果セットが0(1または> 1)でない場合、私は別のSQLステートメントを実行します。

助けてください。

+0

あなたは* PLUSスクリプトPLSQLだけでなく、SQLを学び、一つの場所にあなたのロジックを置く必要があります。問題で説明したように、コンテキスト・スイッチング(バッチからOracleへのバッチ)は必要ありません。 – dbenham

答えて

0

これは、出力が提供される方法に依存するが、以下のようなものが動作するはずです:

@echo off 
set tempfile=%temp%\%random%.log 
echo select count(*) from table where column1 = 'abc'; | sqlplus username/[email protected] > "%tempfile%" 
findstr /c:"INVALID" "%tempfile%" >nul 2>&1 && echo No resultset || echo some other statement | sqlplus username/[email protected] 
+0

ありがとう!あなたの声明を理解しようとしています。 返される結果セットが0の場合、終了する前にユーザーに「結果セットなし」と表示されるようにするにはどうすればよいですか? – cooldude

+0

おそらく私は.BATファイルに異なるセクションを作成できますか? 結果セットが0の場合、goto:section1。結果セットが<> 0の場合、goto:section2。どうやってやるの? – cooldude

+0

したがって、よりユニークな値(VALIDまたはINVALID)を返すようにSQLクエリを変更しました。私も ます。findstr/C使用しています :無効なエラーレベル1つのgoto文 しかし、私は場合はERRORLEVEL 0後藤有効 レム文字列が を見つけていない場合は、 "VALID" scriptlog.txt> NUL 2>&1つの レム文字列が を発見されましたステートメントを正しくリダイレ​​クトできません。私はそれを正しくしていますか? – cooldude

関連する問題