您不能从函数获得多个返回值。
您可以从函数返回一个集合。类似于
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