可不可以在触发器里面
把:new.xxid 拆分为字符串数组a[](xxid其实是一个id集合串,用“,”分隔开的);
然后update tss set tss.chuliqk ='A' where tss.sswjid= a[i] ?主要是这个功能用触发器比较好。
动态sql是什么意思?
把:new.xxid 拆分为字符串数组a[](xxid其实是一个id集合串,用“,”分隔开的);
然后update tss set tss.chuliqk ='A' where tss.sswjid= a[i] ?主要是这个功能用触发器比较好。
动态sql是什么意思?
自己在触发器的脚本里编一个拆吧。
/create or replace function strtab(p_str in varchar2)
return mytabletype
as
lstr varchar2(1000) default p_str||',';
ln number;
ldata mytabletype:=mytabletype();
begin
loop
ln:=instr(lstr,',');
exit when (nvl(ln,0)=0);
ldata.extend;
ldata(ldata.count):=ltrim(rtrim(substr(lstr,1,ln-1)));
lstr:=substr(lstr,ln+1);
end loop;
return ldata;
end;
/begin
if (:NEW.SPZTLX='2') then
UPDATE TSS SET TSS.CHULIQK='A' WHERE TSS.SSWJID in (select * from table(cast(strtab(:NEW.XXID) as mytabletype)));
end if;
End;
/
....
declare str varchar2(200);
begin
if (:NEW.SPZTLX='2') then
str:='UPDATE TSS SET TSS.CHULIQK=''A'' WHERE TSS.SSWJID in ('||:NEW.XXID||')';
execute immediate str;
end if;
End;