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

Execute sql script in batch file with sqlplus command

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

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

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

我基于 sqlcmd 版本:

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

但是有一些问题:

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

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

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

我已连接!这部分没问题,不过好像我调用的pl/sql脚本不好,参数%%l。有我的循环:http://puu.sh/l1Kg2/f66d9c2aa7.png 如果有人能帮助我。因为带参数的调用看起来不错....

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

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

而 %%l 是我循环的一个变量。感谢大家的帮助!