现有sybase的触发器如下:
create trigger tri_byq_userfiles on V_Y_YXBYQ
for insert as
declare getUserInfo cursor for
select BYQBH from inserted
for read only
declare @user_no varchar(20)
open getUserInfo
fetch getUserInfo into @user_no
while @@sqlstatus != 2
begin
......(该处省略)
fetch getUserInfo into @user_no
end
close getUserInfo
deallocate cursor getUserInfo要将上面的触发器移植到oracle里,我把它改造成了下面这样:
create trigger tri_byq_userfiles
after insert
on V_Y_YXBYQ
for each row
declare
user_no varchar2(20);
cursor getUserInfo is
:new.BYQBH;
begin
open getUserInfo;
fetch getUserInfo into user_no;
while getUserInfo%found loop
begin
......(省略)
fetch getUserInfo into user_no;
end;
end loop;
close getUserInfo;
end;
运行后报错,问题是出在游标的定义上,具体的是:new.BYQBH这里出错。sybase数据库的select BYQBH from inserted在oracle里面不就是:new.BYQBH吗?如果这里不应该这样写的话那应该改成什么呢?已经被这个问题困惑很久了,各位高手请帮忙~~~
create trigger tri_byq_userfiles on V_Y_YXBYQ
for insert as
declare getUserInfo cursor for
select BYQBH from inserted
for read only
declare @user_no varchar(20)
open getUserInfo
fetch getUserInfo into @user_no
while @@sqlstatus != 2
begin
......(该处省略)
fetch getUserInfo into @user_no
end
close getUserInfo
deallocate cursor getUserInfo要将上面的触发器移植到oracle里,我把它改造成了下面这样:
create trigger tri_byq_userfiles
after insert
on V_Y_YXBYQ
for each row
declare
user_no varchar2(20);
cursor getUserInfo is
:new.BYQBH;
begin
open getUserInfo;
fetch getUserInfo into user_no;
while getUserInfo%found loop
begin
......(省略)
fetch getUserInfo into user_no;
end;
end loop;
close getUserInfo;
end;
运行后报错,问题是出在游标的定义上,具体的是:new.BYQBH这里出错。sybase数据库的select BYQBH from inserted在oracle里面不就是:new.BYQBH吗?如果这里不应该这样写的话那应该改成什么呢?已经被这个问题困惑很久了,各位高手请帮忙~~~
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货