1

如何在使用 Linked Server 连接到 Oracle 数据库的 SQL Server 上使用 OPENQUERY 从 Oracle 数据库中选择 Blob 列?

当我尝试使用此语法时,我收到一个错误:

SELECT * FROM OPENQUERY(LINKED_SERVER_NAME , 
'Select blobColumn from TABLE') AS derivedtbl_1

错误:

链接服务器“LINKED_SERVER_NAME”的 OLE DB 提供程序“MSDAORA”返回消息“发生 Oracle 错误,但无法从 Oracle 检索错误消息。”。链接服务器“LINKED_SERVER_NAME”的 OLE DB 提供程序“MSDAORA”返回消息“不支持数据类型。”。

4

2 回答 2

1

您可以更改用于连接到 Oracle 的 OLE DB 提供程序吗?Microsoft OLE DB Provider for Oracle 不支持 BLOB 数据类型。Oracle OLE DB 提供程序可以。如果您更改与 Oracle 的连接以使用 Oracle 提供程序,它应该可以工作。

于 2011-02-17T18:11:18.800 回答
0

这有效:

SELECT * FROM OPENQUERY(LINKED_SERVER_NAME , 
'Select DBMS_LOB.SUBSTR(blobColumn,4000,1) from TABLE') AS derivedtbl_1

这仅返回 blob 列的前 4000 个字符,并且仅适用于具有文本(非二进制)数据的列。但它对我有用。

于 2011-02-17T18:10:57.207 回答