【问题标题】:Trigger created with compilation errors due to PLS-00049: bad bind variable由于 PLS-00049 创建了带有编译错误的触发器:绑定变量错误
【发布时间】:2019-05-05 16:59:41
【问题描述】:

我编写了下面的代码来测试对 emp 表的审计。 但不知道为什么会出现错误 PLS-00049: bad bind variable

create table audit_emp_values (Username varchar2(30), Time timestamp, old_salary number, new_salary number);

CREATE OR REPLACE TRIGGER audit_emp_values
AFTER delete or update or insert on employee
FOR EACH ROW
Begin
     insert into audit_employee_table values (user, sysdate, :old.old_salary, :new.new_salary);
End;
/
Warning: Trigger created with compilation errors.

SQL> show err;
Errors for TRIGGER AUDIT_EMP_VALUES:

LINE/COL ERROR
-------- -----------------------------------------------------------------
2/58     PLS-00049: bad bind variable 'OLD.OLD_SALARY'
2/75     PLS-00049: bad bind variable 'NEW.NEW_SALARY'

【问题讨论】:

  • 员工表中是否有 old_salary 和 new_salary 列?
  • 请给您的员工表定义@Nav
  • 可能是你的员工表中的工资列

标签: plsql


【解决方案1】:

我能够解决错误。下面是正确的代码。

create table audit_employee_table (Username varchar2(30), Time timestamp, old_salary number, new_salary number);

CREATE OR REPLACE TRIGGER audit_emp_values
AFTER delete or update or insert on employee
FOR EACH ROW
Begin
     insert into audit_employee_table values (user, sysdate, :OLD.salary, :NEW.salary);
End;
/

【讨论】:

    猜你喜欢
    • 2017-08-11
    • 1970-01-01
    • 2012-09-24
    • 2017-08-16
    • 2020-10-06
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    • 2020-10-22
    相关资源
    最近更新 更多