关于SQL SERVER 链接服务器

liuzg_pual 2005-07-14 09:37:39
加精
我在企业管理器中建了一个SQL SERVER 链接服务器
链接服务器:ORA
链接服务器类型:其他数据源
提供程序名称:Oracle Provider for OLE DB
数据源:(ORACLE服务名)
安全性:选择“用此安全上下文进行”
并填写了 远程登录“XXXX”
使用密码“XXXX”

建好后,在链接服务器下的表中可以查看到链接的表和视图。
但通过查询分析器执行
select * from ORA..USER.TABLE (USER 为ORACLE用户名、TABLE为表名)
时报错
OLE DB 提供程序 'OraOLEDB.Oracle' 返回了无效的架构定义。
OLE DB 错误跟踪[Non-interface error: OLE/DB provider returned an invalid schema definition.]。
不知是什么原因,请各位大侠多多指教,谢谢。
...全文
705 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
allenfu 2006-03-16
我也碰到这样的问题,急着等着解决呢,楼上的XD啊,搞定了没有呢!!
回复
paoluo 2005-07-15
哥们,搞定了??
回复
子陌红尘 2005-07-15
楼主的机器上安装ORACLE客户端了没?
回复
liuzg_pual 2005-07-15
我在别人的电脑上试了一下,有的没问题,有的和我的情况一样。怀疑是SQL SERVER的数据库驱动的问题,可能和MDAC有关,正在研究中…………
在此先谢谢各位大侠了。
回复
liuzg_pual 2005-07-15
我敢肯定的说,ORACLE客户端装了。

不过,还没有完全搞定呢,还是有的机器上行,有的不行。
回复
zjcxc 2005-07-14
1. 企业管理器中,展开链接服务器,查看表右边的详细信息窗口,看看是否有表列出来.
如果没有,则是配置错误. 检查你的配置

2. 如果有表列出来,则试试使用下面的方法能否访问:
select * from openquery(ORA,'select * from USER.TABLE ')
回复
Andy__Huang 2005-07-14
你寫的鏈接語句 是什麼寫的?有可能你的鏈接語句寫得不成功?

參考:
--創建鏈結伺服器
exec sp_addlinkedserver 'server_lnk','','SQLOLEDB','遠端伺服器名或ip位址'
exec sp_addlinkedsrvlogin ' server _lnk','false',null,'用戶名','密碼'
回复
paoluo 2005-07-14
这个给你看看

http://www.oracle123.com/hgkjh/mrspqtymzm/183635.htm
回复
子陌红尘 2005-07-14
使用 OPENQUERY 方式查询链接服务器上的数据:

SELECT * FROM OPENQUERY(ORA, 'SELECT * FROM USER.TABLE')
回复
giveusomecolor 2005-07-14
顶~~~~~~~~~~~~~~~~~
回复
ilons1 2005-07-14
应该是你的链接语句有问题
回复
liuzg_pual 2005-07-14
尝试以下两个方式
SELECT a.*
FROM OPENROWSET('MSDAORA',
'TEST';'SCOTT';'TIGER', SCOTT.BONUS) AS a ORDER BY a.ID

SELECT *
FROM OPENDATASOURCE(
'MSDAORA',
'Data Source=TEST;User ID=SCOTT;Password=TIGER')..SCOTT.BONUS

结果都是:
OLE DB 提供程序 'MSDAORA' 报错。
[OLE/DB provider returned message: 发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。]
OLE DB 错误跟踪[OLE/DB Provider 'MSDAORA' IDBInitialize::Initialize returned 0x80004005: ]。

尝试
select * from openquery(ORA,'select * from SCOTT.BONUS')
结果为:
未能对 OLE DB 提供程序 'OraOLEDB.Oracle' 执行查询。
OLE DB 错误跟踪[OLE/DB Provider 'OraOLEDB.Oracle' ICommandText::Execute returned 0x80040155]。

尝试
select * from ORA..SCOTT.BONUS
结果为:
OLE DB 提供程序 'OraOLEDB.Oracle' 为列提供的元数据不一致。执行时更改了元数据信息。
OLE DB 错误跟踪[Non-interface error: Column 'ENAME' (compile-time ordinal 1) of object '"SCOTT"."BONUS"' was reported to have a DBTYPE of 129 at compile time and 130 at run time]。

大虾们快帮帮我,谢谢。


回复
相关推荐
发帖
应用实例
创建于2007-09-28

2.7w+

社区成员

MS-SQL Server 应用实例
申请成为版主
帖子事件
创建了帖子
2005-07-14 09:37
社区公告
暂无公告