通过逐行功能获取变量值的最佳方法是什么?

问题描述 投票:-1回答:2

我有一个PL / SQL函数。在该函数中,有一个变量值的变量。我想采取变量值的行为。所以我想逐行获取该变量的值。做这个的最好方式是什么?或者我可以拨打任何功能吗?

oracle plsql
2个回答
0
投票

因此,您希望函数输出多个输出,这些输出是函数运行期间变量的不同状态。

我认为没有任何方法可以做到这一点,因为函数只有一个输出。您可以将函数分离为每个步骤的一组函数,然后依次运行它们。或者您可以执行具有多个输出值的过程,然后在每个步骤中,当您想要获取变量的值时,将值分配给您的一个输出参数。


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

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

© www.soinside.com 2019 - 2024. All rights reserved.