我想从ORACLE FUNCTION返回多个值来填充前端的下拉列表框,值是包的数据库常量。
我尝试过这个功能:
return varchar2
IS
BEGIN
return pr_package.constant1_string;
return pr_package.constant2_string;
end;
我需要尽快提供帮助,欢迎提出建议。 提前谢谢。
答案 0 :(得分:1)
你不能从函数中获得多个回报。
您可以从函数返回一个集合。像
这样的东西CREATE TYPE string_array
IS TABLE OF VARCHAR2(100);
CREATE OR REPLACE FUNCTION return_string_array
RETURN string_array
IS
l_string_array string_array := new string_array( pr_package.constant1_string,
pr_package.constant2_string );
BEGIN
RETURN l_string_array;
END;
或者您可以创建流水线表函数。使用相同的类型,您可以管道多行
1 create or replace function pipeline_test
2 return string_array
3 pipelined
4 is
5 begin
6 pipe row( 'Foo' );
7 pipe row( 'Bar' );
8 return;
9* end;
SQL> /
Function created.
SQL> select * from table( pipeline_test );
COLUMN_VALUE
--------------------------------------------------------------------------------
Foo
Bar