如何在使用链接服务器连接到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”返回了消息 “不支持数据类型。”。
答案 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个字符,仅适用于具有文本(非二进制)数据的列。但它对我有用。