Oracle Clob字段中的触发器出现问题

Oracle Clob字段中的触发器出现问题,oracle,Oracle,我正在使用Oracle 10g。在插入表中的每一行之前,需要执行触发器。触发器的作用是为varchar字段设置一个值。但该表有一个CLOB字段,因此每当CLOB字段包含值时,触发器都不会执行,否则,它会正常工作并执行trigger,它会将值设置为varchar字段。原因可能是什么? 请帮忙 CREATE OR REPLACE TRIGGER "TRIG_UPDATE_DISPLAY_NAME" BEFORE INSERT ON TABLE1 FOR EACH ROW DECLA

我正在使用Oracle 10g。在插入表中的每一行之前,需要执行触发器。触发器的作用是为varchar字段设置一个值。但该表有一个CLOB字段,因此每当CLOB字段包含值时,触发器都不会执行,否则,它会正常工作并执行trigger,它会将值设置为varchar字段。原因可能是什么? 请帮忙

CREATE OR REPLACE TRIGGER "TRIG_UPDATE_DISPLAY_NAME"
   BEFORE INSERT
   ON TABLE1
   FOR EACH ROW
DECLARE
   displayValue   VARCHAR2 (100);
BEGIN
   SELECT cust_pk_prefix || cust_pk_next_value
     INTO displayValue
     FROM customer_pk
    WHERE     cust_pk_menu = :new.inc_menu_type
          AND cust_pk_cust_id = :new.inc_cust_id
          AND cust_pk_record_status = 'A';

   :new.inc_display_name := displayValue;

   UPDATE customer_pk
      SET cust_pk_next_value = cust_pk_next_value + 1
    WHERE     cust_pk_menu = :new.inc_menu_type
          AND cust_pk_cust_id = :new.inc_cust_id
          AND cust_pk_record_status = 'A';
END;

你能提供触发代码吗?从逻辑上讲,clob字段是否包含数据并不重要。在表1中插入每行之前创建或替换触发器触发\u更新\u显示\u名称声明displayValue varchar2100;开始从customer_pk中选择cust_pk_prefix | cust_pk_next_值,其中cust_pk_菜单=:new.inc_菜单类型和cust_pk_cust_id=:new.inc_cust_id和cust_pk_记录状态='A':new.inc\u display\u name:=displayValue;更新customer_pk set cust_pk_next_value=cust_pk_next_value+1,其中cust_pk_menu=:new.inc_menu类型和cust_pk_cust_id=:new.inc_cust_id和cust_pk_记录状态='A';终止如果where子句在customer\u pk中找不到记录,它会将null写入table1.inc\u display\u name。是这样吗?然后clob字段状态为假lead。不,即使在删除where子句后,它也不起作用。任何其他猜测??您不应该删除where子句,因为您将更新所有列。找到一个可行的案例,在相应的clob字段中插入一些数据,然后重试。现在失败了吗?