2013-08-06 14 views
1

我有以下類型定義:如何從函數返回的記錄集中查詢嵌套類型字段?

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從嵌套式處理選擇單個記錄?

回答

3
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