首页 文章

使用sqlplus命令在批处理文件中执行sql脚本

提问于
浏览
0

我想从批处理文件中执行 PL/SQL 脚本 . 经过一些研究,我写了这个:

sqlplus.exe %user%/%pwd%@%db% @c:\users\NDL\SQL\MHUHMS.sql %%l

之前设置user,pwd和db的位置 . 但是在这里我必须用一个参数执行脚本MHUHMS.sql . 它似乎不起作用;它给了我一个ORA-01017错误然后问我用户和密码 . 当我提供与批处理文件中使用的值相同的值时,它不会执行我的脚本 .

screenshot

screenshot

我的基础是 sqlcmd 版本:

SQLCMD -S touoracst01 -U %user% -P %pwd% -d %db% -v l ="%%l" -i c:\users\NDL\SQL\MHUHMS.sql

但是有一些问题:

  • 我不是要传递参数 -S touoracst01 吗?

  • 这是正确的转换吗?或者我做错了什么?

我不想修改SQL脚本,所以我希望问题只出现在批处理文件中 .

编辑:我像这样修改我的sqlplus命令

sqlplus -L %user%/%pwd%@%db% < "c:\Hardis\NDL\SQL\MHUHMS.sql" %%l

我联系了!这部分没问题,但似乎我对 pl/sql 脚本的调用不好,参数为%% l . 有我的循环:http://puu.sh/l1Kg2/f66d9c2aa7.png如果有人可以帮助我 . 因为带参数的调用似乎很好....

1 回答

  • 1

    经过大量研究后我发现了这个:

    sqlplus -L %user%/%pwd%@%db% @C:\Hardis\NDL\SQL\MHUHMS.sql "%%l"
    

    %% l是我循环的变量 . 感谢你的帮助 !

相关问题