我有被调用接受一些参数的循环中的两个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>提示符下简单地挂不执行任何我的两个脚本。

感谢您。

有帮助吗?

解决方案

您可以创建一个包含你的两个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

其他提示

尝试这个

( 回声@%查询%用户 )结果 | SQLPLUS用户名/密码@(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(主机= XX.XX.XX.XX)(端口= 152X))(CONNECT_DATA =(SID = ABC)))

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top