Oracle 触发器语法及实例(一)
2008-09-19 12:55:38 来源:WEB开发网例子:
CREATEORREPLACETRIGGERCRM.T_SUB_USERINFO_AUR_NAMEAFTERUPDATEOFSTAFF_NAME
ONCRM.T_SUB_USERINFO
REFERENCINGOLDASOLDNEWASNEW
FOREACHROW
declare
begin
if:NEW.STAFF_NAME!=:OLD.STAFF_NAMEthen
begin
客户投诉
updateT_COMPLAINT_MANAGEsetSERVE_NAME=:NEW.STAFF_NAMEwhereSERVE_SEED=:OLD.SEED;
客户关怀
updateT_CUSTOMER_CAREsetEXECUTOR_NAME=:NEW.STAFF_NAME
whereEXECUTOR_SEED=:OLD.SEED;
客户服务
updateT_CUSTOMER_SERVICEsetEXECUTOR_NAME=:NEW.STAFF_NAME
whereEXECUTOR_SEED=:OLD.SEED;
end;
endif;
endT_sub_userinfo_aur_name;
/
二 Oracle触发器详解
开始:
createtriggerbiufer_employees_department_id
beforeinsertorupdateofdepartment_idonemployees
referencingoldasold_valuenewasnew_value
foreachrow
when(new_value.department_id<>80)
begin
:new_value.commission_pct:=0;
end;
/
1、触发器的组成部分:
1、 触发器名称
2、 触发语句
3、 触发器限制
4、 触发操作
1.1、触发器名称
createtriggerbiufer_employees_department_id
命名习惯:
biufer(beforeinsertupdateforeachrow)
employees表名
department_id列名
1.2、触发语句
比如:
表或视图上的DML语句
DDL语句
数据库关闭或启动,startup shutdown等等
beforeinsertorupdate
ofdepartment_id
onemployees
referencingoldasold_value
newasnew_value
foreachrow
说明:
1、 无论是否规定了department_id,对employees表进行insert的时候
2、 对employees表的department_id列进行update的时候
1.3、触发器限制
when(new_value.department_id<>80)
限制不是必须的。此例表示如果列department_id不等于80的时候,触发器就会执行。
其中的new_value是代表更新之后的值。
1.4、触发操作
是触发器的主体
begin
:new_value.commission_pct:=0;
end;
主体很简单,就是将更新后的commission_pct列置为0
触发:
insertintoemployees(employee_id,last_name,first_name,hire_date,job_id,email,
department_id,salary,commission_pct)
values(12345,’Chen’,’Donny’,sysdate,12,‘donny@hotmail.com’,60,10000,.25);
selectcommission_pctfromemployeeswhereemployee_id=12345;
触发器不会通知用户,便改变了用户的输入值。
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接