Oracle SQL Developer:触发器
Posted
技术标签:
【中文标题】Oracle SQL Developer:触发器【英文标题】:Oracle SQL Developer: Trigger 【发布时间】:2017-09-23 19:20:52 【问题描述】:PL/SQL 专家您好!!
你知道如何在
中使用“蝙蝠侠”这个值吗?INSERT INTO SUPERHEROES VALUES ('Batman');
所以我可以得到下面的输出
1 row inserted.
你添加了蝙蝠侠
当我运行触发函数时?我使用了下面的语句,但它没有显示蝙蝠侠。先感谢您! (注:我刚开始学习sql)
这是一个代码:
CREATE OR REPLACE TRIGGER TRIG_SUPERHEROES
BEFORE INSERT ON SUPERHEROES
FOR EACH ROW
ENABLE
DECLARE
V_USER VARCHAR(20);
SH_NAME VARCHAR(20);
BEGIN`enter code here`
SELECT USER INTO V_USER FROM DUAL;
DBMS_OUTPUT.PUT_LINE('YOU JUST ADDED NEW RECORD ' ||SH_NAME);
END;
【问题讨论】:
格式化代码 【参考方案1】:你必须使用:new.sh_name
。
:old
包含旧记录状态,:new
包含for each row
触发器中的新记录状态。
【讨论】:
非常感谢!!!!除此之外,如果超级英雄表上已经存在 :new.sh_name ,是否可以添加 IF 或存在条件?我的目标是在它插入超级英雄表之前,它会首先检查它是否已经存在。否则,它不会被插入到表中 "它会首先检查它是否已经存在" 不要为此使用触发器,而是向表添加唯一约束或主键,这是做事的正确方法。跨度>以上是关于Oracle SQL Developer:触发器的主要内容,如果未能解决你的问题,请参考以下文章
Regexp_like 在调试器网站上工作,但不在 Oracle SQL Developer 上工作
使用 Apache Ant 而不是 Oracle SQL Developer 执行 SQL 时出错