我定义了以下类型:
TYPE N_TXT IS TABLE OF VARCHAR2(300);
TYPE N_TYPE IS RECORD ( FIELD_1 VARCHAR2 (100)
, FIELD_2 N_TXT);
TYPE T_TYPE IS TABLE OF N_TYPE;
并创建了一个函数来返回一个表记录类型:
FUNCTION fn_test (p_1 IN SMALLINT) RETURN t_type PIPELINED ....
然后我可以从以下位置查询结果集:
SELECT * FROM TABLE (fn_test(P_1));
以检索所有数据。
如果field_2有多条记录,例如3条记录,则输出将返回如下内容:
FIELD_2
++++++++++++++++++++++++++++++
N_TYPE(record1, record2, record3)
如何展开field_2以从嵌套类型中选择单独的记录进行处理?
WITH
ft
AS (
SELECT
*
FROM TABLE fn_test(P_1)
)
SELECT
ft.FIELD_1 f1,
A.column_value f2
FROM
ft, TABLE(ft.FIELD_2) A