
哪位oracle数据库高手帮忙解决一下!谢谢
createorreplacetriggertrig_xjydbeforeinsertordeleteorupdateonzfxfzb.xjydbforeachrowbe...
create or replace
trigger trig_xjyd
before insert or delete or update on zfxfzb.xjydb
for each row
begin
insert into sgy.xjydb_jt(ydxh,xh,xm,xb,ydhxzb,ydqxzb,ydsj) select ydxh,xh,xm,xb,ydhxzb,ydqxzb,ydsj from zfxfzb.xjydb where ydxh=920;
end;
在数据库中运行出现错误,提示表不存在! 展开
trigger trig_xjyd
before insert or delete or update on zfxfzb.xjydb
for each row
begin
insert into sgy.xjydb_jt(ydxh,xh,xm,xb,ydhxzb,ydqxzb,ydsj) select ydxh,xh,xm,xb,ydhxzb,ydqxzb,ydsj from zfxfzb.xjydb where ydxh=920;
end;
在数据库中运行出现错误,提示表不存在! 展开
2个回答
2013-04-06
展开全部
编译出错? 还是触发器运行出错?
目测
被触发的表, 是 zfxfzb.xjydb
触发器里面要查询 zfxfzb.xjydb
要插入 sgy.xjydb_jt
你确定这些表都有么?
如果没记错的话, Oracle 的 for each row 触发器, 不允许在触发器里面, 检索自己这个被触发的表。
目测
被触发的表, 是 zfxfzb.xjydb
触发器里面要查询 zfxfzb.xjydb
要插入 sgy.xjydb_jt
你确定这些表都有么?
如果没记错的话, Oracle 的 for each row 触发器, 不允许在触发器里面, 检索自己这个被触发的表。
追问
我确定数据库中这几张表都有!怎样检索被触发的表?
追答
如果要 在触发器里面, 检索 被触发的表
对于 Oracle 来说, 需要把那行 for each row 删除掉。
这样一来, 触发器就是 语句级的触发器。
也就是 执行一条 SQL 语句, 就触发一次。
不管你这条语句, 插入了多少行数据。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询