通过链接服务器从Oracle数据库中选择BLOB列到SQL Server数据库

时间:2011-02-17 17:31:16

标签: sql-server oracle linked-server blobs

如何在使用链接服务器连接到Oracle数据库的SQL Server上使用OPENQUERY从Oracle数据库中选择blob列?

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

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

错误:

  

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

这有效:

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

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