PLSQLの戻り値をwindowsバッチで扱う処理を記載しています。
<test.bat>
bat
1for /F %%a in ('sqlplus -S user/pass@DB @select.sql') do ( 2 ECHO 処理開始 3 SET vResulut=%%a 4 ECHO 処理終了 5)
上記のバッチを実行すると以下のように、3回繰り返したようになってしまいます。
PLSQLは1度だけ実行しているはずなので1回のみ実行するにはどのようにすればいいか、
助けてくださると嬉しいです。
<test.log>
log
1処理開始 2処理終了 3処理開始 4処理終了 5処理開始 6処理終了
ちなみに
他のファイルはこのようになっております。
<select.sql>
sql
1set feedback off 2whenever sqlerror exit sql.sqlcode rollback 3 4VAR vResult VARCHAR2(10) 5:vResult:=TEST_FNC(); 6PRINT vResult 7 8EXIT;
<TEST_FNC>
PLSQL
1CREATE OR REPLACE FUNCTION TEST_FNC 2RETURN VARCHAR2(10) 3IS 4 vReturn VARCHAR2(10) 5BEGIN 6 SELECT CLM1 INTO vReturn FROM TEST1 WHERE CLM2=0001; 7 RETURN vReturn; 8END;
回答3件
あなたの回答
tips
プレビュー