2012-02-23 195 views
0

我想从ORACLE FUNCTION返回多个值来填充前端的下拉列表框,值是包的数据库常量。从Oracle函数返回多个值

我已经试过这个功能:

return varchar2 
IS 

BEGIN 

return pr_package.constant1_string; 

return pr_package.constant2_string; 

    end; 

我尽快需要帮助,建议,欢迎。 在此先感谢。

回答

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