+ -
当前位置:首页 → 问答吧 → sql转换成oracle 触发器,急求

sql转换成oracle 触发器,急求

时间:2011-11-11

来源:互联网

CREATE TRIGGER [commtools_all] ON dbo.Commtools 
FOR insert,UPDATE, DELETE 
AS 
 
declare @id int 
declare @cid int 
declare @tid int 
declare @oldcommnum varchar(40) 
declare @newcommnum varchar(40) 
 
--------新增 
if exists(select * from inserted) and not exists(select * from deleted) 
begin 
select @cid=c.cid ,@tid=i.tid,@id=i.id from caseindex as c,document as d,inserted as i where c.mid=i.mid and c.cid=d.cid 
 
if not exists(select id from infoissuelist where issuetype=4 and identifyid=@id and operatetype=0)  
begin 
insert into InfoIssueList (identifyid,memo,issuetype,OperateType,Cid) 
select id ,commnum,4,0,@cid from inserted 
end 
end 
 
 
--------修改
else if exists(select * from inserted) and exists(select * from deleted) and update(commnum) 
begin 
 
select @cid = cid from caseindex where mid in(select mid from inserted) 
select @oldcommnum = commnum from deleted 
select @newcommnum = commnum,@tid = tid from inserted 
 
if (@oldcommnum <> @newcommnum)  
begin 
--if exists(select * from document where status=2351 and cid=@cid)  
begin
insert into InfoIssueList (identifyid,memo,issuetype,OperateType,Cid) 
select id ,commnum,4,1,@cid from inserted 
end
end 
 
end 
--------删除 
else if not exists(select * from inserted) and exists(select * from deleted) 
begin 
select @id=id from deleted 
if exists(select id from infoissuelist where issuetype=4 and identifyid=@id and operateType=0) 
begin 
select @cid = cid from caseindex where mid in(select mid from deleted) 
 
insert into InfoIssueList (identifyid,memo,issuetype,OperateType,Cid) 
select id ,commnum,4,2,@cid from deleted 
end 
end


上面这个是我在SQL Server2000里实现的,现在想改成在oracle里用,怎么都不行,请高手指点,解决马上给分

作者: cannyllf   发布时间: 2011-11-11

把你改写的代码贴出来啊,哪里有问题,请顺手指出来。

作者: LuiseRADL   发布时间: 2011-11-12