逐行通过out函数获取变量值的最佳方法是什么?

时间:2019-04-11 05:03:54

标签: oracle plsql

我有一个PL / SQL函数。 在该函数中,有一个变量会更改其值。 我想采用变量值的行为。 所以我想逐行获取该变量的值。 做这个的最好方式是什么?还是我可以调用任何功能?

2 个答案:

答案 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

但是正如其他人所说,我们只是在这里猜测。