当执行更新表a时,触发执行往表b里插入一条当前表a的记录,两个表结构都是一样的,但表中有一个blob字短,实现目的比较清楚的,当我如下写,执行更新表a的时候错误代码为:22275,怎么回事呢?CREATE OR REPLACE TRIGGER test
BEFORE DELETE OR UPDATE
ON table_A
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
begin
if updating then
insert into table_B(col_1,col_2)
values(:NEW.col_1, :NEW.col_2);
end if;
end;但如果触发器中去掉col_2字段就正常运行了!
其中,col_2字段为blob类型!请熟悉的朋友帮忙解决!
BEFORE DELETE OR UPDATE
ON table_A
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
begin
if updating then
insert into table_B(col_1,col_2)
values(:NEW.col_1, :NEW.col_2);
end if;
end;但如果触发器中去掉col_2字段就正常运行了!
其中,col_2字段为blob类型!请熟悉的朋友帮忙解决!
BEFORE DELETE OR UPDATE
ON table_A
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
as
l_blob blob;
begin
if updating then
insert into table_B(col_1,col_2)
values(:NEW.col_1, empty_blob())
return col_2 into l_blob;
dbms_lob.copy(l_blob,:new.col_2,1,1);
end if;
end;
new前就不要加冒号了。漏了一个参数dbms_lob.copy(l_blob,new.col_2,dbms_lob.getlength(new.col_2),1,1);具体用法查看dbms_lob包。