CREATE OR REPLACE TRIGGER "SYNC_USERROLE_COPY"
|
before insert or update or delete on pluserrole
|
for each row
|
/*************************************************************
|
author: liucq
|
create time: 2015.06.01
|
description: ÔʼÓû§½ÇÉ«±í£¨pluserrole£©ÉϵÄǰÖô¥·¢Æ÷£¬
|
µ±Óû§½ÇÉ«±í·¢ÉúÌí¼Ó¡¢Ð޸ġ¢É¾³ýÊý¾Ýʱ£¬
|
ͬ²½¸üе½ÓëÓû§¶ÔÓ¦µÄ Á´½ÓÀàÐÍ ½ÇÉ«Óû§(roleuser)±í
|
logic rules:
|
last modifyer: 2017.06.07
|
last modify time: 2017.06.07
|
change history:
|
2017.06.07 xchao Ìí¼Ó×¢ÊÍ
|
*************************************************************/
|
declare
|
userroleTabCount number;
|
personOid varchar2(64);
|
userCount number;
|
userName varchar2(128);
|
personCount number;
|
begin
|
select count(*) into userroleTabCount from user_tables where lower(table_name) = 'platformlt_roleuser';
|
if userroleTabCount = 0 then
|
return;
|
else
|
if inserting then
|
select count(*) into userCount from pluser u where u.pluid = :new.PLUSERUID;
|
if userCount = 0 then
|
return;
|
else
|
select u.plusername into userName from pluser u where u.pluid = :new.PLUSERUID;
|
select count(*) into personCount from platformbtm_user p where p.id = userName;
|
if personCount = 0 then
|
return;
|
else
|
select p.oid into personOid from platformbtm_user p where p.id = userName;
|
insert into platformlt_roleperson
|
values
|
(get_uuid,
|
'',
|
'',
|
'',
|
'',
|
:new.PLROLEUID,
|
'',
|
'',
|
'role',
|
personOid,
|
'',
|
'',
|
'user',
|
''
|
);
|
end if;
|
end if;
|
end if;
|
if deleting then
|
select count(*) into userCount from pluser u where u.pluid = :old.PLUSERUID;
|
if userCount = 0 then
|
return;
|
else
|
select u.plusername into userName from pluser u where u.pluid = :old.PLUSERUID;
|
select count(*) into personCount from platformbtm_user p where p.id = userName;
|
if personCount = 0 then
|
return;
|
else
|
select p.oid into personOid from platformbtm_user p where p.id = userName;
|
delete from platformlt_roleperson rp
|
where rp.f_oid = :old.PLROLEUID and rp.t_oid = personOid;
|
end if;
|
end if;
|
end if;
|
end if;
|
end;
|
/
|