1.通过行集函数opendatasource select * from opendatasource('MSDAORA', 'Data Source=XST4;User ID=manager;Password=sjpsjsjs')..MISD.PBCATCOL 其中,MSDAORA是OLEDB FOR ORACLE的驱动, 用户名和表名一定要大小,服务器和用户名之间是两个点;并且User ID和要查询的用户名必须是一样的,不能以其他用户名登陆2. 使用MS SQL的openrowset函数 select A.* from openrowset('MSDAORA','XST4';'manager';'sjpsjsjs', 'MISD.PBCATCOL') as A order by A.ID 使用这种方式一定要用别名才行3.使用ODBC方式 select A.* from openrowset('MSDAORA','XST4_ODBC';'manager';'sjpsjsjs', 'MISD.PBCATCOL') as A order by A.ID XST4_ODBC是ODBC数据源4.使用链接服务器方式 EXEC SP_ADDLINKEDSERVER @server='mylinkedserver', --链接服务器名称 @srvproduct='Oracle', --固定 @provider='MSDAORA', --固定 @datasrc='XST4' --oracle本地服务名
创建链接服务器或者使用openrowset都可以。当需要频繁访问时,用链接服务器。当访问较少时,用openrowset。--创建链接服务器后,用openquery,可以对目标表:添加、修改、删除、更新等操作select * from openquery(oraclesvr, 'select name, id from joe.titles')
OLE DB 提供程序 'MSDAORA' 报错。 [OLE/DB provider returned message: 未找到 Oracle 客户端和网络组件。这些组件是由 Oracle 公司提供的,是 Oracle 8i 版 (或更高) 客户软件安装的一部分。在安装这些组件之前,将无法使用此提供程序。] OLE DB 错误跟踪[OLE/DB Provider 'MSDAORA' IDBInitialize::Initialize returned 0x80004005: ]。
可以实现,可以通过SQLServer的链接服务器来解决。
1.通过行集函数opendatasource
select * from opendatasource('MSDAORA', 'Data Source=XST4;User ID=manager;Password=sjpsjsjs')..MISD.PBCATCOL
其中,MSDAORA是OLEDB FOR ORACLE的驱动,
用户名和表名一定要大小,服务器和用户名之间是两个点;并且User ID和要查询的用户名必须是一样的,不能以其他用户名登陆2. 使用MS SQL的openrowset函数
select A.* from openrowset('MSDAORA','XST4';'manager';'sjpsjsjs', 'MISD.PBCATCOL') as A
order by A.ID
使用这种方式一定要用别名才行3.使用ODBC方式
select A.* from openrowset('MSDAORA','XST4_ODBC';'manager';'sjpsjsjs', 'MISD.PBCATCOL') as A order by A.ID
XST4_ODBC是ODBC数据源4.使用链接服务器方式
EXEC SP_ADDLINKEDSERVER
@server='mylinkedserver', --链接服务器名称
@srvproduct='Oracle', --固定
@provider='MSDAORA', --固定
@datasrc='XST4' --oracle本地服务名
from openquery(oraclesvr, 'select name, id from joe.titles')
[OLE/DB provider returned message: 未找到 Oracle 客户端和网络组件。这些组件是由 Oracle 公司提供的,是 Oracle 8i 版 (或更高) 客户软件安装的一部分。在安装这些组件之前,将无法使用此提供程序。]
OLE DB 错误跟踪[OLE/DB Provider 'MSDAORA' IDBInitialize::Initialize returned 0x80004005: ]。