我有一个 Oracle 11g XE 数据库,我想将它转移到 SQL Server Express 2005 中。
起初我以为我只是在 Oracle 中将表生成为 SQL,操作数据格式,然后在 SQL Server 中运行查询。这适用于小表,但我有几个表有几十万行,有些表有数百万行,所以这个解决方案不起作用。
然后我创建了一个包含以下内容的 TNS 文件:
OracleTnsName =
(
DESCRIPTION=
(
ADDRESS = (PROTOCOL=TCP)(HOST=localhost)(PORT=1521)
)
(
CONNECT_DATA = (SERVICE_NAME=XE)
)
)
我按照我在其他地方找到的有关如何生成 ODBC 连接的说明进行操作,并且“测试连接”成功。
然后我运行这些命令在 MS SQL 中创建链接服务器:
EXEC sp_addlinkedserver
@server = 'OracleLinkServer'
,@srvproduct = 'OracleTnsName'
,@provider = 'MSDASQL'
,@datasrc = 'OracleTnsName'
EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'OracleLinkServer'
,@useself = 'False'
,@locallogin = NULL
,@rmtuser = 'user'
,@rmtpassword = 'password'
现在我正在尝试使用以下命令从 SQL Server 查询 Oracle 数据库中的表openquery
:
select * from openquery(OracleLinkServer, 'select * from oracleTable')
但是得到一个错误:
消息 7399,级别 16,状态 1,第 1 行
链接服务器“OracleLinkServer”的 OLE DB 提供程序“MSDASQL”报告错误。提供商没有提供有关该错误的任何信息。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器“OracleLinkServer”的 OLE DB 提供程序“MSDASQL”的数据源对象。
当我检查链接服务器的属性并单击确定时,我收到此错误:
标题:Microsoft SQL Server Management Studio Express
“链接服务器已更新,但连接测试失败。您要编辑链接服务器属性吗?”
附加信息:
执行 Transact-SQL 语句或批处理时发生异常。(Microsoft.SqlServer.Express.ConnectionInfo)
链接服务器“OracleLinkServer”的 OLE DB 提供程序“MSDASQL”报告错误。提供商没有提供有关该错误的任何信息。无法为链接服务器“OracleLinkServer”初始化 OLE DB 提供程序“MSDASQL”的数据源对象。(Microsoft SQL Server,错误:7399)
如需帮助,请单击: http: //go.microsoft.com/fwlink ?ProdName=Microsoft+SQL+Server&ProdVer=09.00.5000&EvtSrc=MSSQLServer&EvtID=7399&LinkId=20476
纽扣:
&是的
&不
请帮忙!
谢谢