我有两个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>提示符下而不执行我的两个脚本中的任何一个 .
谢谢 .
2 回答
试试这个
(echo @%query%user)
| sqlplus用户名/密码@(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(Host = XX.XX.XX.XX)(Port = 152X))(CONNECT_DATA =(SID = ABC)))
您可以创建包含两个script.sql语句的masterscript.sql . 我唯一不确定的是它是否会传递你的变量 .
MasterScript.sql将包含:
并且您的子脚本都不应包含退出 .
Differences between "@" and "@@":
http://www.orafaq.com/wiki/SQL * Plus_FAQ#What_is_the_difference_between_.40_and_.40.40.3F