2008-11-24 171 views
1

我有兩個SQL腳本,它們在接受數字參數的循環中調用。這是我目前使用的:使用批處理文件循環訪問Oracle SQL腳本

for /l %%i in (1, 1, 51) do (
    sqlplus u/[email protected] @script.sql a%%i.html %%i 
    sqlplus u/[email protected] @script.sql b%%i.html %%i 
) 

一切工作正常,但它似乎是浪費時間和資源連接兩次,每次通過。有沒有辦法可以簡單地登錄到sqlplus,運行for循環,然後退出?我試過很多替代品,如把

sqlplus u/[email protected] 

for循環,但隨後它將在SQL>提示符下簡單地掛不執行任何我的兩個腳本。

謝謝。

回答

2

您可以創建一個包含您的兩個script.sql語句的masterscript.sql。 我不確定的唯一事情是它是否會傳入變量。

MasterScript.sql將包含:

@@script1.sql 
@@script2.sql 

既不你的子腳本應包含退出。

Differences between "@" and "@@"

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

0

嘗試這個

( 回聲@%查詢%的用戶 )
| sqlplus username/password @(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(Host = XX.XX.XX.XX)(Port = 152X))(CONNECT_DATA =(SID = ABC)))