PLSQL:在过程的参数中修改
我有这样的程序:PLSQL:在过程的参数中修改,plsql,Plsql,我有这样的程序: Procedure(var1 IN VARCHAR2, var2 IN VARCHAR2 ... ) ---lines of code--- ---在这个过程中,我想做以下工作 var1 := filter(var1); -- filter & assign to the same variable .... .... --do something with var1 但问题是,我无法将IN参数作为常量修改为过程。 我能想到的唯一选项是创建/声明一个新的局部变量,并
Procedure(var1 IN VARCHAR2, var2 IN VARCHAR2 ... )
---lines of code---
---在这个过程中,我想做以下工作
var1 := filter(var1); -- filter & assign to the same variable
....
....
--do something with var1
但问题是,我无法将IN参数作为常量修改为过程。
我能想到的唯一选项是创建/声明一个新的局部变量,并将其赋值为modified IN参数,然后在后续代码中使用它。
但这导致了代码的笨拙,因为有将近30个IN参数,所以我需要为每个参数创建30个新变量
需要您的帮助来更改plsql过程中的IN参数或上述问题的任何其他解决方法
问候
Vj问题是您试图将var1作为OUT参数传递到筛选函数中,这是不允许的。您唯一的选择是:
- 将其设置为输入输出参数
- 将其赋给局部变量
Procedure(var1 IN OUT VARCHAR2 ...
但是,您说过有将近30个IN参数。如果数据是相关的,为什么不创建自定义记录类型
-- use CREATE OR REPLACE if at the schema level
CREATE TYPE my_params_type IS RECORD(var1 type, var2 type ...);
然后你的程序
Procedure(params IN my_params_type) IS
filtered_params my_params_type := params;
BEGIN
filterd_params.var1 := filter(params.var1);
...
诸如此类