首页 文章

使用批处理文件循环遍历Oracle SQL脚本

提问于
浏览
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>提示符下而不执行我的两个脚本中的任何一个 .

谢谢 .

2 回答

  • 2

    试试这个

    (echo @%query%user)
    | sqlplus用户名/密码@(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(Host = XX.XX.XX.XX)(Port = 152X))(CONNECT_DATA =(SID = ABC)))

  • 0

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

相关问题