如果我还需要在父对象中插入值,我如何使用查询构造对象?
显然我使用了错误的语法。
编辑,越来越近了:
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 TYPE myarrayoflittletypes AS VARRAY(20) OF REF mylittletype
anotherTable创建为:
CREATE TABLE anotherTable OF mylittletype
mybigtype有一些字符串和一个类型,它被定义为包含对mylittletype对象的引用数组。所以我希望能够在这个表中插入一行,创建一个mybigtype类型的对象,并根据我定义的查询构造数组。我可以一次插入吗?或者我是否需要放入一个空占位符并随后更新此字段?
甲骨文目前的抱怨是
ORA-01427: single-row subquery returns more than one row
那么如何才能将这个查询的多个OID返回到我正在构造的对象的数组中?
答案 0 :(得分: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')));
答案 1 :(得分: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'))));