oracle-apex - ORA-04098: 触发器 'PRAS.B' 无效并且重新验证失败
问题描述
我有以下查询,
CREATE OR REPLACE TRIGGER display_salary_changes
BEFORE INSERT ON marks
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
DECLARE
sal_diff number;
BEGIN
sal_diff:=:NEW.sub1-:OLD.sub1;
dbms_output.put_line('Old salary: ' || :OLD.sub1);
dbms_output.put_line('New salary: ' || :NEW.sub1);
dbms_output.put_line('Salary difference: ' || sal_diff);
END;
当我尝试运行它时,它会抛出,
ORA-04098: trigger 'PRAS.B' is invalid and failed re-validation
名称 类型 序列 行 位置 文本 属性 MESSAGE_NUMBER
B TRIGGER 1 9 38 PLS-00201: identifier 'OLD.SUB1' must be declared ERROR 201
B TRIGGER 2 9 2 PL/SQL: Statement ignored ERROR 0
B TRIGGER 3 10 41 PLS-00201: identifier 'NEW.SUB1' must be declared ERROR 201
B TRIGGER 4 10 2 PL/SQL: Statement ignored ERROR 0
解决方案
推荐阅读
- angular - 如何更改角材料轮廓边框的大小?
- matlab - 使用 MATLAB 使用梯度下降进行逻辑回归的全局最小值
- graphql - 如何从 JWT 身份验证中排除 Quarkus Graphql-UI?
- swift - Swift - 计算属性与数据库操作
- python - 是否可以发出命令 !messages @user
- sql-server - 解析包含多列和子查询的查询返回超过 1 个值
- python - 需要帮助理解 python 中的布尔值
- java - 如何创建这样的滑动按钮?
- c# - C# WPF | 找不到资源“mainwindow.xaml”
- android - 如何在 Firebase Crashlytics 控制台中过滤用户 ID 的日志事件和崩溃?