我有一个PL / SQL函数。在该函数中,有一个变量值的变量。我想采取变量值的行为。所以我想逐行获取该变量的值。做这个的最好方式是什么?或者我可以拨打任何功能吗?
因此,您希望函数输出多个输出,这些输出是函数运行期间变量的不同状态。
我认为没有任何方法可以做到这一点,因为函数只有一个输出。您可以将函数分离为每个步骤的一组函数,然后依次运行它们。或者您可以执行具有多个输出值的过程,然后在每个步骤中,当您想要获取变量的值时,将值分配给您的一个输出参数。
你的描述非常......稀疏:-)但也许你指的是像流水线函数这样的东西,它可以在执行时输出数据然后可以通过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
但正如其他人所说,我们只是在这里猜测。