37

如何使用 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”命令的类似方法吗?

4

2 回答 2

59

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

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';
于 2013-09-04T18:24:53.857 回答
5

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

sqlplus.exe MYUSER/mypassword@HOST030 @refreshDataOnOracle.sql foo bar  >> log.log
于 2016-05-17T09:06:32.903 回答