我有一个存储过程。我想从中调用一个函数。想要将检索到的游标记录传递给函数。如何将检索到的游标记录作为函数参数传递,以及如何在函数内部访问它?我如何声明函数?
最佳答案
假设你真的想要一个函数(这意味着你想要返回一个值)而不是一个过程(它不返回一个值)并且假设你的游标真的从单个表中选择每一列,你可以声明一个函数需要一个 anchor 定的 %ROWTYPE
SQL> create function get_empno( p_rec in emp%rowtype )
2 return number
3 is
4 begin
5 return p_rec.empno;
6 end;
7 /
Function created.
然后从您的过程中调用该函数
SQL> declare
2 l_empno emp.empno%type;
3 begin
4 for i in (select * from emp)
5 loop
6 l_empno := get_empno( i );
7 dbms_output.put_line( l_empno );
8 end loop;
9 end;
10 /
7369
7499
7521
7566
7654
7698
7782
7788
7839
7844
7876
7900
7902
7934
PL/SQL procedure successfully completed.
关于oracle - 将游标记录传递给函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8073864/