我需要找到一种更新变量的最佳方法,该变量是对象表(多级嵌套表)的表,该表由包中的过程中的参数通过元素值接收。
我试图在示例中执行代码伪代码以学习如何使用,但是我不知道如何在这种类型的对象中导航,因为它是对象表的表。
CREATE OR REPLACE TYPE o_people AS OBJECT (
name varchar2(100)
,surname varchar2(100)
,active char(1)
);
/
CREATE OR REPLACE TYPE t_people IS TABLE OF o_people;
/
CREATE OR REPLACE TYPE t_resultset IS TABLE OF t_people;
/
DECLARE obj o_people;
obj1 o_people;
v_people t_people;
v_resultset t_resultset;
begin
obj := o_people(
name => 'John'
,surname => 'Doe'
,active => '1'
);
obj1 := o_people(
name => 'Lisa'
,surname => 'Ann'
,active => '1'
)
;
v_people := t_people(obj,obj1);
v_resultset := t_resultset(v_people);
FOR v_index IN 1..v_resultset.last LOOP
--IF v_resultset(v_index).t_people.name = 'Lisa' AND v_resultset(v_index).t_people.surname = 'Ann' THEN
v_resultset(v_index) := t_people(o_people ( name => 'Lisa'
,surname => 'Ann'
,active => '0'
));
--END IF;
--DBMS_OUTPUT.PUT_LINE(v_resultset(v_index).t_people.o_people.name);
END LOOP;
END;
请给我一些方法来做我需要的事情。 更新所有满足条件的值,在这种情况下,名称为“ Lisa”,姓为“ Ann”,将active = 0设置为该多层嵌套表中的所有“ Lisa Ann”。
我先由衷地感谢。