Oracle - 如何将参数从批处理文件传递到包含PL / SQL过程的SQL文件

时间:2017-11-21 09:49:16

标签: sql oracle batch-file plsql

我在批处理文件中编写了一个命令,该命令调用包含pl / sql过程的.sql文件。但我需要在PL / SQL过程中设置一个参数,该参数在整个过程中与批处理文件相同。

批处理文件如下。

set parameterOne=%1
set parameterTwo=%2


sqlplus -s uid/pwd filepath/filename.sql %parameterOne %parameterTwo

.sql文件中的PL / SQL过程如下。

DECLARE parameterOneValue       INT;
        parameterTwoValue       INT;
BEGIN

parameterOneValue := $(parameterOne);
parameterTwoValue := $(parameterTwo);

//procedure block

END;

我需要分别在.sql文件中将批处理文件中的parameterOneparameterTwo属性设置为parameterOneValueparameterTwoValue。任何人都可以为此提供解决方案吗?

1 个答案:

答案 0 :(得分:0)

使用设置DEFINE ON ,并使用&进行变量替换。

例如,

您的批处理文件:

set parameterOne=%1
set parameterTwo=%2    

sqlplus -s uid/pwd filepath/filename.sql %parameterOne %parameterTwo

PL / SQL块中的SQL * Plus替换:

parameterOneValue := &1;
parameterTwoValue := &2;

&将替换您在批处理文件中设置的实际值。