使用 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
但是有一些问题:
- 我不用传参数
-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 如果有人能帮助我。因为带参数的调用看起来不错....
经过大量研究,我发现了这个:
sqlplus -L %user%/%pwd%@%db% @C:\Hardis\NDL\SQL\MHUHMS.sql "%%l"
而 %%l 是我循环的一个变量。感谢大家的帮助!
我想从批处理文件中执行 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
但是有一些问题:
- 我不用传参数
-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 如果有人能帮助我。因为带参数的调用看起来不错....
经过大量研究,我发现了这个:
sqlplus -L %user%/%pwd%@%db% @C:\Hardis\NDL\SQL\MHUHMS.sql "%%l"
而 %%l 是我循环的一个变量。感谢大家的帮助!