如何从函数返回的记录集中查询嵌套类型字段



我定义了以下类型:

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

最新更新