触发器集成应用实例Word文件下载.docx
- 文档编号:15887335
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:10
- 大小:122.27KB
触发器集成应用实例Word文件下载.docx
《触发器集成应用实例Word文件下载.docx》由会员分享,可在线阅读,更多相关《触发器集成应用实例Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
由于在Novell的目录eDirectory中,目前只把OrganizationalUnit和User类作为存储组织和用户信息的主类,所以建立中间表中只需要两个表,分别用来对应部门和用户。
2.1.部门中间表
createtabletest_idm_dept
(
avic_Dept_CodeVARCHAR2(50)primarykey,
avic_Dept_NameVARCHAR2(50)
);
2.2.用户中间表
createtabletest_idm_user
AVICCNVARCHAR2(50)primarykey,
Avic_PasswordVARCHAR2(50),
avic_psn_nameVARCHAR2(50),
avic_GenderVARCHAR2(50),
avic_actri_MailVARCHAR2(50),
avic_Office_TelVARCHAR2(50),
avic_Dept_CodeVARCHAR2(50),
3.建立触发器
部门表和用户表的触发器主要有Insert、Update、Delete三种触发行为,分别对应数据的建立、更新和删除。
3.1.建立数据
3.1.1.部门表Insert
createorreplacetriggerIDM_DEPT_INSERT
beforeinsertontest_idm_dept
foreachrow
declare
zj_dept_idVARCHAR2(50);
newguidVARCHAR2(50);
bianmaVARCHAR2(50);
begin
---根据员工账号,处理员工信息
selectdeptidintozj_dept_idfromtest_idm_maptwheret.bianma=:
new.avic_Dept_Codeandt.deptidin(selectd.idfromt_sys_deptdwhered.available='
1'
EXCEPTION
WHENOTHERSTHEN
zj_dept_id:
=null;
end;
ifzj_dept_idisnotnullthen
---组织编码存在,不存在的情况手工处理
---更新组织表
updatet_sys_deptt
sett.name=:
new.avic_Dept_Name
wheret.id=zj_dept_id;
else
selectsys_guid()intonewguidfromdual;
insertintot_sys_dept(id,name,available,parent_id)values(newguid,:
new.avic_Dept_Name,'
'
1111111111111111'
begin
selectt.bianmaintobianmafromtest_idm_maptwheret.bianma=:
new.avic_Dept_Code;
EXCEPTION
bianma:
end;
ifbianmaisnullthen
insertintotest_idm_map(deptid,bianma,deptname)values(newguid,:
new.avic_Dept_Code,:
new.avic_Dept_Name);
endif;
endif;
endIDM_DEPT_INSERT;
3.1.2.用户表Insert
createorreplacetriggerIDM_USER_INSERT
beforeinsertontest_idm_user
zj_user_idVARCHAR2(50);
deptidVARCHAR2(50);
selectt.id
intozj_user_id
fromt_sys_usert
wheret.ACCOUNT=:
new.AVICCN
andt.available='
;
zj_user_id:
--根据机构编码找到机构的id
selectt.deptid
intodeptid
fromtest_idm_mapt
wheret.bianma=:
new.avic_Dept_Code;
deptid:
ifzj_user_idisnullthen
---员工账号不存在
---插入员工表
selectsys_guid()intozj_user_idfromdual;
insertintot_sys_usert
(id,available,account,password,email,name,dept_id,sex2,phone)
values
(zj_user_id,
'
:
new.AVICCN,
new.Avic_Password,
new.avic_actri_Mail,
new.avic_psn_name,
deptid,
new.avic_Gender,
new.avic_Office_Tel);
---员工账号已存在
---更新员工表
updatet_sys_usert
sett.dept_id=deptid,
t.name=:
t.password=:
t.phone=:
new.avic_Office_Tel,
t.sex2=:
t.email=:
new.avic_actri_Mail
wheret.available='
andt.ACCOUNT=:
new.AVICCN;
endIDM_USER_INSERT;
3.2.更新数据
3.2.1.部门表Update
createorreplacetriggerIDM_DEPT_UPDATE
beforeupdateontest_idm_dept
--组织id
dbms_output.put_line('
ddddddd'
||:
new.avic_Dept_Code);
---根据员工编号,处理员工信息
dbms_output.put_line('
ddd'
||zj_dept_id);
--如果找到组织id,更新组织名称信息
wheret.id=zj_dept_id;
endIDM_DEPT_UPDATE;
3.2.2.用户表Update
createorreplacetriggerIDM_USER_UPDATE
beforeupdateontest_idm_user
--根据机构编码找到机构的id
endIDM_USER_UPDATE;
3.3.删除数据
3.3.1.部门表Delete
createorreplacetriggerIDM_DEPT_DELETE
beforedeleteontest_idm_dept
old.avic_Dept_Code);
old.avic_Dept_Codeandt.deptidin(selectd.idfromt_sys_deptdwhered.available='
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 触发器 集成 应用 实例
![提示](https://static.bdocx.com/images/bang_tan.gif)