求救,一个简单触发器,却有这么多问题

alfwolf 2006-12-26 06:26:50
我用的是816
意图是通过触发器同步两个数据库上的表.
首先,我建立了一个database link,名称为DB_REMOTE,测试后说是处于活动状态;
然后,我写了一个触发器大致如下:
CREATE OR REPLACE TRIGGER "MYDB"."TR_TEST_TRIGGER" AFTER UPDATE OF "NAME", "USER_ID" ON "MYDB"."T_USER" FOR EACH ROW BEGIN
IF UPDATING THEN
UPDATE T_USER@DB_REMOTE a SET a.NAME=:NEW.NAME WHERE a.USER_ID=:NEW.USER_ID;
END IF;
END TR_TEST_TRIGGER;
这个触发器也曾经有效过,但是在我重新建database link后就再也不行了,我的database link连接的数据库没变,名称也没变,请问着是怎么回事啊?
...全文
216 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
alfwolf 2006-12-27
  • 打赏
  • 举报
回复
tgm78()
非常感谢你,的确是我用来创建数据库链路的用户对远端数据库的那个表没有访问权限导致的.
我按照你的方法在远端数据库建立了一个公共同义词(也是刚刚学的,呵呵),触发器就可以用了.
现在这100分全部奉上.
不过我有个问题,为什么用那个对相应的表有操作权限的用户无法建立数据库链路呢?总是提示我密码为空或者不正确,实际上是正确的,如能不吝赐教,我将再开帖奉送100分.
tgm78 2006-12-27
  • 打赏
  • 举报
回复
不过我有个问题,为什么用那个对相应的表有操作权限的用户无法建立数据库链路呢?总是提示我密码为空或者不正确,实际上是正确的,如能不吝赐教,我将再开帖奉送100分.

没有能看太懂?

建立数据库链路,需要就有建db_link的权限的。
tgm78 2006-12-26
  • 打赏
  • 举报
回复
有报错,请把报错贴出来
tgm78 2006-12-26
  • 打赏
  • 举报
回复
在本地数据库,为远程数据的表建立类似如下的公共同义词
create public synonym para_modify_record for auditintf.para_modify_record@para_audit.world;
alfwolf 2006-12-26
  • 打赏
  • 举报
回复
tgm78()
谢谢你,我突然发现我建立数据库链路的用户在远程数据库对那个表没有权限. -_-!!!
请问我如何让这个用户对这个表有操作权限呢?我什么都不懂,呵呵.
tgm78 2006-12-26
  • 打赏
  • 举报
回复
说明远程数据库是通的,

具体报错信息是什么,贴出来,看看先
alfwolf 2006-12-26
  • 打赏
  • 举报
回复
SYSDATE
----------
26-12月-06
也是好的啊
tgm78 2006-12-26
  • 打赏
  • 举报
回复


select sysdate from dual@DB_REMOTE;
试试远程数据库是否通?

还有,是否是远程数据库的权限发生变化了?

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧