如何使用SQLPLUS在命令行上将参数传递给PL / SQL脚本?

时间:2013-09-04 18:08:33

标签: oracle sqlplus

如何使用SQLPLUS在命令行上将参数传递给PL / SQL脚本?我可以像这样调用我的PL / SQL脚本,但脚本需要参数才能使它成功。如何运行sqlplus.exe以便我可以将参数传递给脚本?

@ECHO off
// where HOST030 is a tnsnames alias to a machine, port, and instance    
sqlplus.exe MYUSER/mypassword@HOST030 < refreshDataOnOracle.sql    
pause

我试图搜索答案,但无法在SQLPLUS的任何地方找到“参数示例”。我怀疑这是使用SQL * Plus“START”命令的类似方法吗?

2 个答案:

答案 0 :(得分:41)

首先,你需要像这样调用你的脚本:

sqlplus.exe MYUSER/mypassword@HOST030 @refreshDataOnOracle.sql foo bar  

您将使用“@”符号来指示要执行的文件名,而不是操作系统重定向。您还将在命令行上提供脚本参数。在脚本中,您将使用&1&2等参考参数。

update mytable set mycol = '&2' where myid = '&1';

将转化为

update mytable set mycol = 'bar' where myid = 'foo';

答案 1 :(得分:2)

如果要记录sqlplus的运行,可以使用以下语法:

sqlplus.exe MYUSER/mypassword@HOST030 @refreshDataOnOracle.sql foo bar  >> log.log