[创建触发器时的ORA-06512

问题描述 投票:0回答:1

我正在尝试为现有表创建触发器:

CREATE OR REPLACE EDITIONABLE TRIGGER "AD_EDGE_FORECAST_PRODUCTS" 
AFTER DELETE ON "EDGE_FORECAST_PRODUCTS" FOR EACH ROW
BEGIN
    UPDATE EDGE_FORECAST
        SET PRODUCTS_VCE = CASE WHEN PRODUCTS_VCE IS NULL
                           THEN NULL
                           ELSE REPLACE(REPLACE(PRODUCTS_VCE, :NEW.PRODUCT, ''), '::', ':') END,

            PRODUCTS_VCP = CASE WHEN PRODUCTS_VCP IS NULL
                           THEN NULL
                           ELSE REPLACE(REPLACE(PRODUCTS_VCP, :NEW.PRODUCT, ''), '::', ':') END,

            PRODUCTS_GRC = CASE WHEN PRODUCTS_GRC IS NULL
                           THEN NULL
                           ELSE REPLACE(REPLACE(PRODUCTS_GRC, :NEW.PRODUCT, ''), '::', ':') END,

            PRODUCTS_PLM = CASE WHEN PRODUCTS_PLM IS NULL
                           THEN NULL
                           ELSE REPLACE(REPLACE(PRODUCTS_PLM, :NEW.PRODUCT, ''), '::', ':') END,

            PRODUCTS_MDM = CASE WHEN PRODUCTS_MDM IS NULL
                           THEN NULL
                           ELSE REPLACE(REPLACE(PRODUCTS_MDM, :NEW.PRODUCT, ''), '::', ':') END
    WHERE ID = :NEW.ID
END;

但是当我尝试运行此代码时,得到以下结果:

ORA-24344: success with compilation error
ORA-06512: at "SYS.WWV_DBMS_SQL_APEX_200100", line 581
ORA-06512: at "SYS.DBMS_SYS_SQL", line 1658
ORA-06512: at "SYS.WWV_DBMS_SQL_APEX_200100", line 567
ORA-06512: at "APEX_200100.WWV_FLOW_DYNAMIC_EXEC", line 2127

这里是什么问题?

我是否忘了一些基本的/愚蠢的语法?

sql oracle plsql triggers database-trigger
1个回答
1
投票
© www.soinside.com 2019 - 2024. All rights reserved.