gpt4 book ai didi

sql-server - 从 SQL Server 查询 Oracle 数据库

转载 作者:行者123 更新时间:2023-12-03 00:49:57 25 4
gpt4 key购买 nike

我有一个 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'

现在我尝试使用 openquery 从 SQL Server 查询 Oracle 数据库中的表:

select * from openquery(OracleLinkServer, 'select * from oracleTable')

但是出现错误:

Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "MSDASQL" for linked server "OracleLinkServer" reported an error. The provider did not give any information about the error.
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "OracleLinkServer".

当我检查链接服务器的属性并单击“确定”时,出现此错误:

标题: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

<小时/>

按钮:

是的

请帮忙!

谢谢

最佳答案

如果您已成功添加链接服务器,则不再需要 OPENQUERY。您可以只包含链接服务器名称作为限定名称的第一部分,如下所示:

SELECT * FROM OracleLinkServer.database.schema.table

不确定您需要哪些部分,但点是关键。首先尝试一下:

SELECT * FROM OracleLinkServer...oracleTable

关于sql-server - 从 SQL Server 查询 Oracle 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11309762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com