访问子变量 pl sql
access to child variable pl sql
我试图通过父对象访问对象的子变量
declare
i a22;
i1 VARCHAR(10);
begin
i := a22('a22', t_b1(
b22('b22', t_a1(a22('a22_2', t_b1(b22('b22_2', t_a1())))))
)
);
dbms_output.put_line('i.name_a1='||i.name_a1);
dbms_output.put_line('i.t_b1(1).name_b1='||i.o_b(1).name_b1);
dbms_output.put_line('i.o_b(1).o_a(1).name_a1='||i.o_b(1).o_a(1).name_a1);
end;
/
编译时出错,需要声明变量。父对象不知道子对象的变量是合乎逻辑的。但是在初始化一切时
成功地。如何访问子变量?
对象本身:
Create type a1 is object (
name_a1 varchar2(10)
) NOT FINAL NOT INSTANTIABLE;
Create type b1 is object (
name_b1 varchar2(10)
) NOT FINAL NOT INSTANTIABLE;
create type t_a1 is table of a1;
create type t_b1 is table of b1;
Create type b22 UNDER b1 (
o_a t_a1
) INSTANTIABLE;
Create type a22 UNDER a1 (
o_b t_b1
) INSTANTIABLE;
我试图通过父对象访问对象的子变量
declare
i a22;
i1 VARCHAR(10);
begin
i := a22('a22', t_b1(
b22('b22', t_a1(a22('a22_2', t_b1(b22('b22_2', t_a1())))))
)
);
dbms_output.put_line('i.name_a1='||i.name_a1);
dbms_output.put_line('i.t_b1(1).name_b1='||i.o_b(1).name_b1);
dbms_output.put_line('i.o_b(1).o_a(1).name_a1='||i.o_b(1).o_a(1).name_a1);
end;
/
编译时出错,需要声明变量。父对象不知道子对象的变量是合乎逻辑的。但是在初始化一切时 成功地。如何访问子变量?
对象本身:
Create type a1 is object (
name_a1 varchar2(10)
) NOT FINAL NOT INSTANTIABLE;
Create type b1 is object (
name_b1 varchar2(10)
) NOT FINAL NOT INSTANTIABLE;
create type t_a1 is table of a1;
create type t_b1 is table of b1;
Create type b22 UNDER b1 (
o_a t_a1
) INSTANTIABLE;
Create type a22 UNDER a1 (
o_b t_b1
) INSTANTIABLE;