Types 具有包含嵌套表的类型的构造
我有一个类型,它包含一个接受数组的构造函数。我想构建一个这种类型的数组,同时在子数组中输入 例如Types 具有包含嵌套表的类型的构造,types,plsql,Types,Plsql,我有一个类型,它包含一个接受数组的构造函数。我想构建一个这种类型的数组,同时在子数组中输入 例如 create type child as object ( name varchar2(10) ); / create type children as table of child; / create type parent as object ( name varchar2(10), my_children children ); / create type parent
create type child as object
(
name varchar2(10)
);
/
create type children as table of child;
/
create type parent as object
(
name varchar2(10),
my_children children
);
/
create type parents as table of parent;
/
create table child_table
(
parent_name varchar2(10),
child_name varchar2(10)
);
/
create table parent_table
(
name varchar2(10)
);
/
declare
l_parents parents;
begin
select parent(p.name, (select child(c.child_name) from child_table where parent_name = p.name))
bulk collect into l_parents
from parent_table p;
end;
第四行到最后一行选择parentp.name。。。。只是伪代码,正是我遇到麻烦的代码。尝试以下方法:
SELECT parent(p.name,
CAST((SELECT COLLECT (child(c.child_name))
FROM child_table c
WHERE parent_name = p.name
) AS children
)
)
BULK COLLECT INTO l_parents
FROM parent_table p;
请你对你的回答再解释一下好吗?只有代码的答案是不赞成这样做的。
declare
l_parents parents;
begin
select parent(p.name, cast(multiset(select c.child_name from child_table c where parent_name = p.name)as children))
bulk collect into l_parents
from parent_table p;
end;