2009-05-02 63 views
0

如果我還需要在父對象中插入值,那麼如何使用查詢構造對象?在基於查詢構造的對象構造中插入數組

顯然我使用錯誤的語法。

編輯,越來越近:

CREATE TYPE myarrayoflittletypes AS VARRAY(20) OF REF mylittletype 

anotherTable創建爲:

insert into myTable 
select 
    mybigtype('foo', 'bar', 'fizzle', myarrayoflittletypes(
     select ref(S) 
     from anotherTable S 
     where S.stname='dingle' 
      or S.stname='fangle'))); 

mylittletype被創建爲

CREATE TABLE anotherTable OF mylittletype 

mybigtype有弦數而這定義的類型保存對mylittletype對象的引用數組。所以我希望能夠在這個表中插入一行,創建一個基於我定義的查詢構造的數組mybigtype類型的對象。我可以在一次插入中完成這一切嗎?或者我需要放置一個空佔位符並隨後更新此字段?

甲骨文目前投訴

ORA-01427: single-row subquery returns more than one row 

所以,我怎麼能得到多個OID返回該查詢到我構造對象數組?

回答

0

有可能是一個更好的方式來做到這一點,這樣我可以從一個單一的查詢中插入多行到我的數組,但下面的工作:

insert into myTable 
    values(mybigtype('foo', 'bar', 'fizzle', myarrayoflittletypes(
     (select ref(S) 
     from anotherTable S 
     where S.stname='dingle'), 
     (select ref(S) 
     from anotherTable S 
     where S.stname='fangle')))); 
1

你幾乎擁有它!

insert into myTable 
select 
    mybigtype('foo', 'bar', 'fizzle', myarrayoflittletypes(
     (select 
      ref(S.mylittletype) 
     from anotherTable S 
     where S.mylittletype.stname='dingle 
      or S.mylittletype.stname='fangle'))); 
+0

謝謝了,這讓我的大部分那裏的方式 - 這個查詢返回多行,我想將它們分別添加到數組中。那可能嗎? – 2009-05-02 15:43:43