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

Plsql 当函数返回记录时,如何在选择块中使用函数,plsql,Plsql,当我的函数返回一个数组时,类型t_source是一个数字表 FUNCTION func_f(p_plan_id NUMBER, p_item_id NUMBER) RETURN t_source IS x_source_o t_source; 如何在选择块中使用返回数组而不使用模板值,如: select func_f(plan_id,item_id)(1),func_f(plan_id,item_id)(2) from dual;

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

FUNCTION func_f(p_plan_id NUMBER,
                            p_item_id NUMBER) RETURN t_source IS
    x_source_o t_source;
如何在选择块中使用返回数组而不使用模板值,如:

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

因此,有人知道解决问题的正确方法吗?

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

CREATE TYPE phone_book_t AS TABLE OF phone_list_typ;
/
SELECT CAST(COLLECT(phone_numbers) AS phone_book_t) 
   FROM customers;
资料来源: