Plsql PLS-00049:绑定变量错误

Plsql PLS-00049:绑定变量错误,plsql,oracle-sqldeveloper,Plsql,Oracle Sqldeveloper,我正在尝试写入触发器,但出现以下错误: Error(44,3): PLS-00049: bad bind variable 'NEW.NEW_REGION_CODE' Error(45,5): PLS-00049: bad bind variable 'NEW.NEW_REGION_DESC' Error(46,5): PLS-00049: bad bind variable 'NEW.NEW_MYHR_REGION_BI_CODE' Error(47,3): PLS-00049: bad bi

我正在尝试写入触发器,但出现以下错误:

Error(44,3): PLS-00049: bad bind variable 'NEW.NEW_REGION_CODE'
Error(45,5): PLS-00049: bad bind variable 'NEW.NEW_REGION_DESC'
Error(46,5): PLS-00049: bad bind variable 'NEW.NEW_MYHR_REGION_BI_CODE'
Error(47,3): PLS-00049: bad bind variable 'NEW.NEW_MEDBEN_NUMOF_OPTIONS'
Error(48,5): PLS-00049: bad bind variable 'NEW.NEW_DENTALBEN_NUMOF_OPTIONS'
Error(49,3): PLS-00049: bad bind variable 'NEW.NEW_NUMOFHRS_WORKD_60PRORATION'
Error(50,5): PLS-00049: bad bind variable 'NEW.NEW_NUMOFHRS_WORKD_80PRORATION'
Error(51,5): PLS-00049: bad bind variable 'NEW.NEW_CREATED_BY'
Error(52,3): PLS-00049: bad bind variable 'NEW.NEW_CREATED_ON'
这是我的触发代码:

CREATE OR REPLACE 
TRIGGER TRG_UPDT_REGION
BEFORE UPDATE ON REGION 
FOR EACH ROW
BEGIN
    INSERT INTO REGION_HST 
( 
REGION_CODE, 
REGION_DESC, 
MYHR_REGION_BI_CODE, 
MEDBEN_NUMOF_OPTIONS, 
    DENTALBEN_NUMOF_OPTIONS, 
NUMOFHRS_WORKED_60PRORATION,
NUMOFHRS_WORKED_80PRORATION,
CREATED_BY,
CREATED_ON, 
UPDATED_BY, 
UPDATED_ON,
DELETED_BY,
DELETED_ON, 
    NEW_REGION_CODE,
NEW_REGION_DESC, 
NEW_MYHR_REGION_BI_CODE, 
NEW_MEDBEN_NUMOF_OPTIONS, 
NEW_DENTALBEN_NUMOF_OPTIONS, 
    NEW_NUMOFHRS_WORKD_60PRORATION,
NEW_NUMOFHRS_WORKD_80PRORATION, 
NEW_CREATED_BY, 
NEW_CREATED_ON, 
NEW_UPDATED_BY, 
NEW_UPDATED_ON
)
    VALUES 
    ( 
:OLD.REGION_CODE, 
:OLD.REGION_DESC, 
:OLD.MYHR_REGION_BI_CODE, 
    :OLD.MEDBEN_NUMOF_OPTIONS,
:OLD.DENTALBEN_NUMOF_OPTIONS,
:OLD.NUMOFHRS_WORKED_60PRORATION, 
    :OLD.NUMOFHRS_WORKED_80PRORATION, 
:OLD.CREATED_BY,
:OLD.CREATED_ON,
:OLD.UPDATED_BY, 
    :OLD.UPDATED_ON,
APEX_APPLICATION.G_USER,
SYSDATE, 
    :NEW.NEW_REGION_CODE,
:NEW.NEW_REGION_DESC, 
:NEW.NEW_MYHR_REGION_BI_CODE, 
    :NEW.NEW_MEDBEN_NUMOF_OPTIONS, 
:NEW.NEW_DENTALBEN_NUMOF_OPTIONS, 
    :NEW.NEW_NUMOFHRS_WORKD_60PRORATION, 
:NEW.NEW_NUMOFHRS_WORKD_80PRORATION, 
:NEW.NEW_CREATED_BY, 
    :NEW.NEW_CREATED_ON, 
APEX_APPLICATION.G_USER,
SYSDATE);
END;

我一直在寻找同样问题的问题,但没有一个能解决我的问题。我还检查了拼写错误,我确信拼写是正确的

该错误意味着
:NEW
伪记录没有使用过名称的字段,这意味着触发器所针对的表没有使用这些名称的列

根据您使用的
:旧的
值,您刚刚在列名中引入了虚假的
新前缀;因此,values子句应该是:

VALUES 
( 
    :OLD.REGION_CODE, 
    ...
    :OLD.UPDATED_ON,
    APEX_APPLICATION.G_USER,
    SYSDATE, 
    :NEW.REGION_CODE,
    :NEW.REGION_DESC, 
    :NEW.MYHR_REGION_BI_CODE, 
    :NEW.MEDBEN_NUMOF_OPTIONS, 
    :NEW.DENTALBEN_NUMOF_OPTIONS, 
    :NEW.NUMOFHRS_WORKD_60PRORATION, 
    :NEW.NUMOFHRS_WORKD_80PRORATION, 
    :NEW.CREATED_BY, 
    :NEW.CREATED_ON, 
    APEX_APPLICATION.G_USER,
    SYSDATE
);

请显示表
区域
的定义(例如,作为
创建表
语句),您能否将
区域
表的结构添加到问题中?它是否真的有像
NEW\u REGION\u code
这样的列,或者您只是错误地在其中添加了一个额外的
NEW\u