2012-12-25 87 views
1
CREATE OR REPLACE TYPE pack.D_O IS OBJECT(
r number, 
l number, 
s_pack number(3), 
s_pack_name varchar2(50), 
n_uch number(5), 
type_name varchar2(30), 
date_att date, 
cause_att number(2), 
cause_att_name varchar2(250) 
) 

---------------------------------------------------------------------- 
CREATE OR REPLACE TYPE pack.D_T IS TABLE OF pack.D_O; 

---------------------------------------------------------------------- 
CREATE OR REPLACE TYPE pack.d2_o IS OBJECT(
d NUMBER(5), 
n VARCHAR2(75), 
m VARCHAR2(75), 
f number, 
z pack.D_T 
) 

---------------------------------------------------------------------- 
select pack.d2_O(
manager, 
name, 
office, 
regalias, 
? -- how to fill "z" collection here? 
) 
from 
t1,t2 
where 
..... 

回答

4

你需要創建一個D_T,有0個或多個D_O S:

select pack.d2_O(
    manager, 
    name, 
    office, 
    regalias, 
    pack.D_T(
    pack.D_O(1,2,3,4,5,6,sysdate,8,9), 
    pack.D_O(1,2,3,4,5,6,sysdate,8,9) 
) 
) 
from 
t1,t2 

編輯

或者使用CAST(COLLECT從子查詢填充Z:

select pack.d2_O(
    manager, 
    name, 
    office, 
    regalias, 
    (
    select cast(collect(d_o(a,b,c,d,e,f,g,h,i)) as d_t) 
    from t2 
) 
) 
from 
t1 
+0

謝謝!但我怎樣才能使用子查詢填充「z」? pack.D_T的數據綁定到某個表,我們應該動態地填充它,我們沒有一些特定的數據。 – kseen

相關問題