我有一个PL / SQL函数。 在该函数中,有一个变量会更改其值。 我想采用变量值的行为。 所以我想逐行获取该变量的值。 做这个的最好方式是什么?还是我可以调用任何功能?
答案 0 :(得分:0)
因此,您希望函数输出多个输出,这些输出是函数运行期间变量的不同状态。
我不认为实际上有任何方法可以实现,因为函数只有一个输出。您可以将每个步骤的功能分解为一堆功能,然后一个接一个地运行。或者,您可以执行一个具有多个out值的过程,然后在每个步骤要获取变量的值时,都将值分配给其中一个out参数。
答案 1 :(得分:0)
您的描述非常……稀疏:-),但也许您所指的是流水线函数之类的东西,它可以在执行时输出数据,然后可以通过SQL使用它。下面的示例:
SQL> create or replace
2 function my_func return sys.odcinumberlist pipelined as
3 my_var int := 0;
4 begin
5 pipe row ( my_var);
6 my_var := my_var + 10;
7 pipe row ( my_var);
8 my_var := my_var * 10;
9 pipe row ( my_var);
10 return;
11 end;
12 /
Function created.
SQL>
SQL> select * from my_func();
COLUMN_VALUE
------------
0
10
100
但是正如其他人所说,我们只是在这里猜测。