友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
oracle从入门到精通(PDF格式)-第14部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
trigger_body
在同一个方案下不允许重名。
CREATE OR REPLACE TRIGGER secure_emp
BEFORE INSERT OR UPDATE OR DELETE ON employees
BEGIN
IF (TO_CHAR (SYSDATE; 'HH24') NOT BETWEEN '08' AND '12') AND DELETING
THEN
RAISE_APPLICATION_ERROR (…20502;'You may delete from EMPLOYEES table
only during business hours。');
第 94 页,共 106 页
…………………………………………………………Page 95……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
ELSIF (TO_CHAR (SYSDATE; 'HH24') NOT BETWEEN '12' AND '18') AND INSERTING THEN
RAISE_APPLICATION_ERROR (…20500;'You may insert into
EMPLOYEES table only during business hours。');
ELSIF (TO_CHAR (SYSDATE; 'HH24') NOT BETWEEN '8' AND '18') AND UPDATING ('SALARY')
THEN
RAISE_APPLICATION_ERROR (…20503;'You may update
SALARY only during business hours。');
ELSE
RAISE_APPLICATION_ERROR (…20504;'You may update
EMPLOYEES table only during normal hours。');
END IF;
END;
2。行级触发器:
CREATE 'OR REPLACE' TRIGGER trigger_name
timing
event1 'OR event2 OR event3'
ON table_name
'REFERENCING OLD AS old / NEW AS new'
FOR EACH ROW
'WHEN (condition)' //执行条件
trigger_body
:OLD。字段名/:NEW。字段名 引用格式。
例:
CREATE OR REPLACE TRIGGER restrict_salary
BEFORE INSERT OR 'UPDATE OF' salary ON employees
FOR EACH ROW
WHEN (new。salary is not null) //在出发器头里,new。salary 相当与本身的变量
BEGIN
IF :NEW。salary》2*:old。salary //在TRIGGER_BODY 里,:NEW。salary 相当与一个绑
定变量
or :NEW。salary
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!