应该这样,值已经改变了,用new的UPDATE T_EMP_CDE SET NC_STATUS='0',NC_OPR_STATUS='0' WHERE C_EMP_CDE = TRIM(v_new_emp_cde);
解决方案 »
- ORACLE怎么把本机的表权限授权给DBLINK下的用户
- 去重复记录问题
- 急啊!!!!!!FORMS和REPORTS打不开了,求助!!!!!
- 使用toad 如何导出整个数据库中的所有DD
- 同步和优化 索引,急急急
- 简单问题?
- 请问oracle里日期怎么用SQL语句进行筛选啊
- 查询某天的上一天的记录怎样在where语句里怎样写啊
- imp问题
- 连接oracle 数据库时有没有碰到过这样的问题:the NetWork Adapter can not establish the connection!
- 【请问】package.procedure 与procedure在运行效率上有什么区别
- Oracle数据库sql脚本运行结束,如何退出?
BEFORE UPDATE of c_dpt_cde ON T_EMP_CDE FOR EACH ROW
DECLARE
v_emp_cde VARCHAR2(10);
BEGIN
IF UPDATING THEN
IF (:NEW.C_DPT_CDE != :OLD.C_DPT_CDE)
or(:OLD.C_DPT_CDE is null and :NEW.C_DPT_CDE is not null)
or(:OLD.C_DPT_CDE is not null and :NEW.C_DPT_CDE is null) THEN
:NEW.NC_STATUS:=0;
:NEW.NC_OPR_STATUS=0;
END IF;
END IF;
END;
我尝试把Before改称After,也不行。
CREATE OR REPLACE TRIGGER TRI$_T_EMP_CDE_CHANGEDEP
BEFORE UPDATE of c_dpt_cde ON T_EMP_CDE FOR EACH ROW
DECLARE
v_emp_cde VARCHAR2(10);
BEGIN
IF UPDATING THEN
IF (:NEW.C_DPT_CDE != :OLD.C_DPT_CDE)
or(:OLD.C_DPT_CDE is null and :NEW.C_DPT_CDE is not null)
or(:OLD.C_DPT_CDE is not null and :NEW.C_DPT_CDE is null) THEN
:NEW.NC_STATUS:='0';
:NEW.NC_OPR_STATUS='0';
END IF;
END IF;
END;你的触发器:NEW.NC_STATUS:='0';
:NEW.NC_OPR_STATUS='0';这块编译不过去,如果只写一句可以编译过去,而且是正确的,怎样把这两句连接起来?