
哪位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 语句, 就触发一次。
不管你这条语句, 插入了多少行数据。

2025-04-08 广告
Stata系列软件全国授权代理——北京友万。北京友万信息科技有限公司,总部设在北京市昌平科技园区,是一家专注于引进国内外软硬件产品的中关村高新技术企业。公司拥有多项自主研发的数据平台,依托自身经验丰富的技术团队资源,为不同领域的客户提供全面...
点击进入详情页
本回答由友万科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询