为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:更改嵌套表的数据
--1、定义变量
declare
type record_table is record (id int, val varchar(128),zidingyi VARCHAR);
TYPE v_table is table of record_table;
tempChange v_table ;
begin
--BULKCOLLECT 批量的执行,具体用法可参考官网文档;
SELECT num,val,'zidingyi' BULK COLLECT INTO tempChange
from table(KF_PUB_SPLITSTRBYCHAR('1&2&3&7&9&6&','&'));
--用法
SELECT * FROM TABLE(tempChange) ;
--这个是不支持的语法
update table(tempChange) set zidingyi='12222' where id=1;
commit;
end;
UPDATE (SELECT t.val
FROM TABLE(tempChange) t
WHERE t.id = 1)
SET val = 'new_value';
暂时不支持吧。你还是老实的遍历集合更新
for i in tempChange.first..tempChange.count
loop
if tempChange(i).id= 1 then
tempChange(i).zidingyi = '122222';
end if;
end loop;
可以用临时表