本文介绍了PLSQL :NEW 和 :OLD的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!
问题描述
谁能帮助我理解何时在 PLSQL 块中使用 :NEW 和 :OLD,我发现很难理解它们的用法.
Can anyone help me understand when to use :NEW and :OLD in PLSQL blocks, I'm finding it very difficult to understand their usage.
推荐答案
您通常在 trigger 使用 :old 引用旧值和 :new 引用新值.
You normally use the terms in a trigger using :old to reference the old value and :new to reference the new value.
这里是上面链接的 Oracle 文档中的一个示例
Here is an example from the Oracle documentation linked to above
CREATE OR REPLACE TRIGGER Print_salary_changes
BEFORE DELETE OR INSERT OR UPDATE ON Emp_tab
FOR EACH ROW
WHEN (new.Empno > 0)
DECLARE
sal_diff number;
BEGIN
sal_diff := :new.sal - :old.sal;
dbms_output.put('Old salary: ' || :old.sal);
dbms_output.put(' New salary: ' || :new.sal);
dbms_output.put_line(' Difference ' || sal_diff);
END;
在这个例子中,触发器触发 BEFORE DELETE OR INSERT OR UPDATE :old.sal 将包含触发器触发之前的薪水和 :new.sal 将包含新值.
In this example the trigger fires BEFORE DELETE OR INSERT OR UPDATE :old.sal will contain the salary prior to the trigger firing and :new.sal will contain the new value.
这篇关于PLSQL :NEW 和 :OLD的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!
The End


大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)