触发更新clob错误

时间:2016-05-02 20:06:35

标签: sql oracle oracle11g

尝试创建一个触发器,将字段更新为rtrim硬件返回应用程序正在折腾。
无法访问应用程序代码,因此我认为没有其他方法可以使用触发器对数据进行可能需要的更改。

并不总是添加回报。

此代码抛出错误....

  

预期的数据类型不一致得到了clob。

我认为声明这个领域会避免这个问题......但是没有......

非常感谢任何帮助或建议。

CREATE OR REPLACE TRIGGER AI_master_set
  AFTER INSERT ON base1
  REFERENCING NEW AS NEW OLD AS OLD
  FOR EACH ROW
DECLARE
    master_set CLOB;

BEGIN       
    UPDATE base1
      set master_set= rtrim(master_set,chr(00))
      WHERE master_set = :new.master_set;

 :new.master_set:= master_set;      

END;

1 个答案:

答案 0 :(得分:0)

基于没有名字的马,以及Oracle (11g) compound trigger not updating CLOB data field,这应该只是起作用:

CREATE OR REPLACE TRIGGER AI_master_set
  before INSERT ON base1
  REFERENCING NEW AS NEW OLD AS OLD
  FOR EACH ROW
DECLARE
    tmp_master_set CLOB;
BEGIN       
    tmp_master_set := rtrim(:new.master_set,chr(00));
    :new.master_set:= tmp_master_set ;
END;
/

希望它有所帮助。