1

数値パラメーターを受け入れるループ内で呼び出される 2 つの SQL スクリプトがあります。これが私が現在使用しているものです:

for /l %%i in (1, 1, 51) do (
    sqlplus u/p@name @script.sql a%%i.html %%i
    sqlplus u/p@name @script.sql b%%i.html %%i
)

すべて正常に動作しますが、パススルーごとに 2 回接続するのは時間とリソースの無駄のようです。単純に sqlplus にログインし、for ループを実行してから終了する方法はありますか? 私は置くなどの多くの選択肢を試しました

sqlplus u/p@name

for ループの前に、しかしその後、私の 2 つのスクリプトのいずれも実行せずに SQL> プロンプトで単にハングアップします。

ありがとうございました。

4

2 に答える 2

2

2 つの script.sql ステートメントを含む masterscript.sql を作成できます。私が確信していない唯一のことは、それが変数を渡すかどうかです。

MasterScript.sql には次のものが含まれます。

@@script1.sql
@@script2.sql

どちらの添え字にも exit を含めないでください。

"@" と "@@" の違い:

http://www.orafaq.com/wiki/SQL *Plus_FAQ#What_is_the_difference_between_.40_and_.40.40.3F

于 2008-11-24T17:13:56.817 に答える
0

これを試して

(エコー @%query% ユーザー)
| sqlplus ユーザー名/パスワード@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=XX.XX.XX.XX)(Port=152X))(CONNECT_DATA=(SID=ABC)))

于 2013-03-20T13:54:53.033 に答える