Oracle ORA-25006用于更新CLOB列
我试图避免在CLOB列中使用空值进行更新(由于其他原因,该列不能具有NOTNULL约束) 我写了这个触发器:Oracle ORA-25006用于更新CLOB列,oracle,triggers,Oracle,Triggers,我试图避免在CLOB列中使用空值进行更新(由于其他原因,该列不能具有NOTNULL约束) 我写了这个触发器: create or replace TRIGGER "TEST_NULL" BEFORE UPDATE OR INSERT OF MY_CLOB_COLUMN ON T FOR EACH ROW begin if (:old.MY_CLOB_COLUMN is not null and :new.MY_CLOB_COLUMN is null) then RAI
create or replace TRIGGER "TEST_NULL"
BEFORE UPDATE OR INSERT OF MY_CLOB_COLUMN
ON T
FOR EACH ROW
begin
if (:old.MY_CLOB_COLUMN is not null and :new.MY_CLOB_COLUMN is null) then
RAISE_APPLICATION_ERROR(-20001, 'error');
end if;
END;
然而,我得到了一份工作
ORA-25006:无法在更新子句中指定此列
如何解决此问题?您需要删除列名的
,并且您只需要将其作为更新的一部分:
create or replace TRIGGER "TEST_NULL"
BEFORE UPDATE ON T
FOR EACH ROW
begin
if (:old.MY_CLOB_COLUMN is not null and :new.MY_CLOB_COLUMN is null) then
RAISE_APPLICATION_ERROR(-20001, 'error');
end if;
END;
谢谢我认为我需要检查该列(实际上,表中有许多CLOB列),但是该逻辑可以应用于表上的任何更新。