当函数返回记录时,如何在select块中使用函数

时间:2012-12-17 06:23:51

标签: plsql

当我的函数返回一个数组时(类型t_source是一个数字表)

FUNCTION func_f(p_plan_id NUMBER,
                            p_item_id NUMBER) RETURN t_source IS
    x_source_o t_source;

如何在不使用模板值的情况下在select块中使用返回数组,例如:

select func_f(plan_id,item_id)(1),func_f(plan_id,item_id)(2) from dual;

所以任何人都知道解决问题的正确方法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用该函数来转换数组类型:

CREATE TYPE phone_book_t AS TABLE OF phone_list_typ;
/
SELECT CAST(COLLECT(phone_numbers) AS phone_book_t) 
   FROM customers;

来源:http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions024.htm