如何将sql的触发器转换成Oracle的触发器
sql的触发器语句为
CREATE TRIGGER tu_cws_CWareRegisterCard ON [cws_CWareRegisterCard]
FOR UPDATE
AS
declare @CWareRCID integer
declare @CWareName char(60)
declare @CWareName2 char(60)
select @CWareRCID = CWareRCID , @CWareName = CWareName from inserted ttt
if(update(CWareName))
begin
if(exists (select 1 from cws_CWareList where CWareID in (select CWareID from cws_CWCompare where CWareRCID = @CWareRCID)))
select @CWareName2 = CWareName from cws_CWareList where CWareID in ( select CWareID from cws_CWCompare where CWareRCID = @CWareRCID )
if ( @CWareName2 <> @CWareName )
update cws_CWareList set CWareName = rtrim( @CWareName ) where CWareID in ( select CWareID from cws_CWCompare where CWareRCID = @CWareRCID )
end
我写的Oracle触发器为
declare
tCWareRCID integer;
tCWareName char(60);
tCWareName2 char(60);
begin
--select CWareRCID INTO tCwareRCID from inserted ttt;
--select CWareName INTO tCWareName from inserted ttt;
--if(update(CWareName))
if(exists(select null from cws_CWareList where CWareID in ( select CWareID from cws_CWCompare where CWareRCID = 1 )) then
select CWareName INTO tCWareName2 from cws_CWareList where CWareID in ( select CWareID from cws_CWCompare where CWareRCID = tCWareRCID );
if ( tCWareName2 <> tCWareName ) then
update cws_CWareList set CWareName = rtrim( tCWareName ) where CWareID in ( select CWareID from cws_CWCompare where CWareRCID = tCWareRCID );
end if;
end if;
end;
但是有错,谁能帮我解决!