oracle dblink 表或视图不存在

wjhlangzi 2011-09-01 12:19:54
请教下各位,如下使用dblink的问题,创建dblink是正确的,测试也没问题,
只是执行sql语句放到 oracle的 触发器中就提示 表或视图不存在。


--创建db link链接
-- create database link test connect to"wzx" identified by "123456" using 'orcl';
--测试语句如下
select * from test_user@test;
insert into test_user@test(id,name)values(1,'test');
--以上两个语句是正确的。 说明dblink 是成功的。
但是如果我把
-- insert into test_user@test(id,name)values(1,'test'); 放到触发器的 begin … end 中。就提示表或视图不存在。

在创建快照的时候也是如此:
Create snapshot sn_xwmc as select * from xwmc@test;
提示找不到表或视图。
单独执行 select * from xwmc@test; 是可以执行的。
请问下大家该怎么解决呢?
...全文
1107 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
dlx804332206 2012-10-15
  • 打赏
  • 举报
回复
您好,最近我也遇到了这种问题,按你的提示,把dblink创建为私有的,可是问题还是没有解决,请求帮助
yejihui9527 2011-09-21
  • 打赏
  • 举报
回复
不知道 跟share 有什么区别
wjhlangzi 2011-09-21
  • 打赏
  • 举报
回复
感谢大家,最近出差,没来得及结贴。
问题不是权限问题
而是 dblink的时候出的问题。
不能使用public
不要悲剧人生 2011-09-19
  • 打赏
  • 举报
回复
你触发器的用户是哪个。。。也要授权
Gninil 2011-09-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 gninil 的回复:]
查看下是否带有用户(表所有者)或者你DBLINK的用户权限
[/Quote]

比如select * from lee.XX@dblk_a
或者
你创建DBLINK的用户为XIA 那么查看此表用户是否GRANT SELECT ON XX TO XIA

再者查看错误如果远程表包含BLOB字段的话 那么也会抱错
Gninil 2011-09-19
  • 打赏
  • 举报
回复
查看下是否带有用户(表所有者)或者你DBLINK的用户权限
薛定谔之死猫 2011-09-05
  • 打赏
  • 举报
回复
这么写是没什么问题的,重新登录再触发触发器试试,再不行就把test_user表的grant语句贴出来
opps_zhou 2011-09-01
  • 打赏
  • 举报
回复
权限问题,grant select, insert, update on tabname to username with grant option;
wjhlangzi 2011-09-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zftang 的回复:]
尝试
看看是否成功,同时观察报错情况
[/Quote]

第一条执行正确。
查询也有数据了。
第二条语句执行错误, 表或视图不存在
wjhlangzi 2011-09-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 opps_zhou 的回复:]
引用 3 楼 wjhlangzi 的回复:
引用 1 楼 opps_zhou 的回复:
权限问题,grant select, insert, update on tabname to username with grant option;

权限已经赋值,问题还是这样的。
是否权限赋值错误?
用sys 登录,给当前用户的表附权限?


在 dblink 的机器上,对dblink使……
[/Quote]

只是问题依然。不知道?
wjhlangzi 2011-09-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 opps_zhou 的回复:]
引用 3 楼 wjhlangzi 的回复:
引用 1 楼 opps_zhou 的回复:
权限问题,grant select, insert, update on tabname to username with grant option;

权限已经赋值,问题还是这样的。
是否权限赋值错误?
用sys 登录,给当前用户的表附权限?


在 dblink 的机器上,对dblink使……
[/Quote]

恩。在dblink的机器上对当前用户(dlink使用用户)进行了授权
opps_zhou 2011-09-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wjhlangzi 的回复:]
引用 1 楼 opps_zhou 的回复:
权限问题,grant select, insert, update on tabname to username with grant option;

权限已经赋值,问题还是这样的。
是否权限赋值错误?
用sys 登录,给当前用户的表附权限?
[/Quote]

在 dblink 的机器上,对dblink使用的用户进行授权试试
wjhlangzi 2011-09-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 opps_zhou 的回复:]
权限问题,grant select, insert, update on tabname to username with grant option;
[/Quote]
权限已经赋值,问题还是这样的。
是否权限赋值错误?
用sys 登录,给当前用户的表附权限?
秋雨飘落 2011-09-01
  • 打赏
  • 举报
回复
尝试

create view v_test_user as select * from test_user@test;
insert into v_test (id,name)values(1,'test');
看看是否成功,同时观察报错情况

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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