关于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.]。
不知是什么原因,请各位大侠多多指教,谢谢。
...全文
773 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
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]。

大虾们快帮帮我,谢谢。


27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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