本机时sql 2000 的数据库,想通过链接服务器链接到ORCAL 总服务器上。。但建立链接服务器的时候,能建立成功,但点到上面的表或者视图时,就出现“错误7399:OLE DB 提供程序`MSDASQL`报错。”的错误。详细信息:
执行用户: NT AUTHORITY\SYSTEM。OLE DB 提供程序 'MSDASQL' 报错。 [SQLSTATE 42000](错误 7399) 驱动程序的 SQLSetConnectAttr 失败] [SQLSTATE 01000](错误 7312) 驱动程序的 SQLSetConnectAttr 失败] [SQLSTATE 01000](错误 7312) ORA-12535: TNS:operation timed out] [SQLSTATE 01000](错误 7312) OLE DB 错误跟踪[OLE/DB Provider 'MSDASQL' IDBInitialize::Initialize returned 0x80004005: ]。 [SQLSTATE 01000](错误 7300). 步骤失败。
大家帮忙看看!
执行用户: NT AUTHORITY\SYSTEM。OLE DB 提供程序 'MSDASQL' 报错。 [SQLSTATE 42000](错误 7399) 驱动程序的 SQLSetConnectAttr 失败] [SQLSTATE 01000](错误 7312) 驱动程序的 SQLSetConnectAttr 失败] [SQLSTATE 01000](错误 7312) ORA-12535: TNS:operation timed out] [SQLSTATE 01000](错误 7312) OLE DB 错误跟踪[OLE/DB Provider 'MSDASQL' IDBInitialize::Initialize returned 0x80004005: ]。 [SQLSTATE 01000](错误 7300). 步骤失败。
大家帮忙看看!
要求:本地安装Oracle客户端
select * from opendatasource('MSDAORA', 'Data Source=XST4;User ID=manager;Password=sjpsjsjs')..MISD.PBCATCOL
其中,MSDAORA是OLEDB FOR Oracle的驱动,注意:用户名和表名一定要大小,服务器和用户名之间是两个点;
例如:
select top 10 * from opendatasource('MSDAORA', 'Data Source=HZTEST;User ID=osstest;Password=a1234')..OSSTEST.SUBSCRIBER本地Oracle客户端配置文件中内容如下:
HZTEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 132.149.7.19)(PORT = 1521))
)
(CONNECT_DATA =
(SID = test)
)
)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本地服务名
该文章转载自德仔工作室:http://www.dezai.cn/article_show.asp?ArticleID=17285