1

我有两个 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
)

一切正常,但每次通过连接两次似乎是浪费时间和资源。有没有办法我可以简单地登录到 sqlplus,运行 for 循环,然后退出?我尝试了很多替代方法,例如把

sqlplus u/p@name

在 for 循环之前,但它会简单地挂在 SQL> 提示符处,而不执行我的两个脚本中的任何一个。

谢谢你。

4

2 回答 2

2

您可以创建一个包含两个 script.sql 语句的 masterscript.sql。我唯一不确定的是它是否会传递你的变量。

MasterScript.sql 将包含:

@@script1.sql
@@script2.sql

并且您的任何子脚本都不应该包含出口。

"@" 和 "@@" 之间的区别

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 回答