PLSQL:修改过程的IN参数

Vij*_*jay 5 plsql

我有这样的程序:

Procedure(var1 IN VARCHAR2, var2 IN VARCHAR2 ... )
---lines of code---
Run Code Online (Sandbox Code Playgroud)

---在这个程序里面我想做下面的事情

var1 := filter(var1); -- filter & assign to the same variable
....
....
--do something with var1
Run Code Online (Sandbox Code Playgroud)

但问题是无法将IN参数修改为过程作为常量.我能想到的唯一选择是创建/声明一个新的局部变量并为其分配修改后的IN参数并在后续代码中使用它.但这导致了笨拙的代码,因为有近30个IN参数.所以我需要为每个参数创建30个新变量.

需要您的帮助来更改plsql过程中的IN参数或上述问题的任何其他解决方法.

关心Vj

Ste*_*ieG 10

问题是你试图将var1作为OUT参数传递给你的过滤函数,这是不允许的.您拥有的唯一选择是:

  • 使其成为IN OUT参数
  • 将其分配给局部变量