如何在触发器里把新增的带有long型列的记录保存到另一个表里?
declare
cursor cur is select * from jiveoffline;
rec cur%ROWTYPE;
begin insert into jiveoffline@test(username, messageid, creationdate, messagesize, message)
values(:new.username, :new.messageid, :new.creationdate, :new.messagesize, ' '); open cur;
loop
fetch cur into rec;
exit when cur%notfound;
update jiveoffline@test set message = rec.message where messageid = rec.messageid;
end loop;
close cur;
end;
如上,本来是想用after方式,在记录插入后,再取出来更新过去,但就是出错,打不开游标,改成before就不会出错,但这时候记
还没有插进去,是取不出新插的记录的想问问有什么办法把:new整个地传到存储过程里,在存储过程访问long型列
declare
cursor cur is select * from jiveoffline;
rec cur%ROWTYPE;
begin insert into jiveoffline@test(username, messageid, creationdate, messagesize, message)
values(:new.username, :new.messageid, :new.creationdate, :new.messagesize, ' '); open cur;
loop
fetch cur into rec;
exit when cur%notfound;
update jiveoffline@test set message = rec.message where messageid = rec.messageid;
end loop;
close cur;
end;
如上,本来是想用after方式,在记录插入后,再取出来更新过去,但就是出错,打不开游标,改成before就不会出错,但这时候记
还没有插进去,是取不出新插的记录的想问问有什么办法把:new整个地传到存储过程里,在存储过程访问long型列
2.游标cur 取的是所有旧的记录,也不符合逻辑
3.把:new整个传到存储过程,里面也有long类型,还是不行还是想其它办法吧,比如定时检查把A表记录更新到B表等。
http://topic.csdn.net/u/20100212/10/f65b2353-d73a-41ee-8e38-0a6b50706017.html?54304