求救使用pl/sql在oracle9i和oracle7.3 database link

ljw_pulse 2007-05-15 09:38:36
我这里有两个数据库,一个是oracle9i(装在win2003 server) A,另一个是oracle7.3(装在Linux服务器上) B
A数据库有一个用户equip(我们自己的开发用户,我有DBA权限)
B数据库有一个用户cmms(外部数据库用户,我无权访问),在B数据上增加了一个访问用户cmms_reader(对cmms中的部分table有访问权限,同时有create database link权限)
我在同一客户机上登录两个数据库都是成功的,我现在需要在A数据库的equip中建立一个database link ,通过这个database link来访问B数据库的cmms_reader,最终目的是访问B数据库中的cmms用户的部分table.
create database link CMMS_LINK.US.ORACLE.COM
connect to CMMS_READER identified by DATAREADER
using 'cmmsdatabase';
我的本地服务名以及用户和密码都是正确的,建立database link后
使用select * from tab@CMMS_LINK.US.ORACLE.COM 出错 ora-12154 TNS:could not resolve service name
为了找到错误原因,我在A数据库equip中建立一个访问A数据库中另一个用户的database link,访问正常。
在B数据库中cmms_reader这个用户中同样建立一个访问自己cmms_reader这个用户database link 访问时出现同样的错误。
后来我又在B数据库中cmms_reader这个用户中建立一个访问A数据库equip用户的database link,访问时还是出现同样的错误!
请问是oracle7.3数据库中database link需要什么特别的设置吗?还是有其它什么特殊的原因?在线等待求救中……
...全文
603 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljw_pulse 2007-05-21
  • 打赏
  • 举报
回复
续续求救中……
ljw_pulse 2007-05-15
  • 打赏
  • 举报
回复
可能是global_name的问题,请问在哪里设置global_name=false呀?
vc555 2007-05-15
  • 打赏
  • 举报
回复
建dblink,注意要:
1.在“服务器”的tnsnames.ora中配置相关服务信息。你的错误提示很像这一点啊;
2、一般设global_name=false,不然资料库链结名称跟远端资料库名称必须一样。
ljw_pulse 2007-05-15
  • 打赏
  • 举报
回复
现在还是没有搞定呀!继续求教呀……
现在我把两个数据库的用户都给了DBA权限了,我建立database link时的database我直接用了连接串从A连到B的是(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.192.84.1)(PORT = 1521)))(CONNECT_DATA=(SID = ora7)))

从B连到A库的是(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.192.84.6)(PORT = 1521)))(CONNECT_DATA =(SID = cmms)(SERVER = DEDICATED)))
现在的情况是我从B库访问A库时一切正常,从A库访问B库时出现错误
ORA-01002: fetch out of sequence
ORA-02063: preceding line from ORA7
现个库都设置了global_names=false
各位大侠,紧急求救呀!
ljw_pulse 2007-05-15
  • 打赏
  • 举报
回复
我始连接不上就是因为服务器没有配置,只要客户端配置的,后来我把database改成了连接串,现在从B数据建一个database link 到A库,访问正常了,从B库建一个database link联接到B库自身用户,访问也正常了,可是当从A库建一个database link到B库(名为ORA7.US.ORACLE.COM),访问时出现
ORA-01002: fetch out of sequence
ORA-02063: preceding line from ORA7
真是搞不明白了。
vc555 2007-05-15
  • 打赏
  • 举报
回复
你直接用DBA权限登录sqlplus,然后alter system set global_names=false;

不过你在A、B两个数据库服务器的tnsnames.ora中是不是正确配置了服务名啊?可不要只在客户端的机子上配。一般很多人都容易犯这个错误。

3,492

社区成员

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

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