【问题标题】:Selecting BLOB column from Oracle database to SQL Server database over linked server通过链接服务器从 Oracle 数据库中选择 BLOB 列到 SQL Server 数据库
【发布时间】:2011-06-29 06:39:47
【问题描述】:

如何在使用 Linked Server 连接到 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”返回消息 “不支持数据类型。”。

【问题讨论】:

  • 如果您发布代码、XML 或数据示例,在文本编辑器中突出显示这些行并单击编辑器上的“代码示例”按钮 ({ })工具栏以很好地格式化和语法突出显示它!

标签: sql-server oracle linked-server blobs


【解决方案1】:

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

【讨论】:

  • 当我偶然发现我在上面发布的答案时,我正试图弄清楚如何更早地做到这一点。好主意!
【解决方案2】:

这行得通:

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

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

【讨论】:

  • 如果您发布代码、XML 或数据示例,在文本编辑器中突出显示这些行,然后单击编辑器上的“代码示例”按钮 ({ })工具栏以很好地格式化和语法突出显示它!
猜你喜欢
  • 1970-01-01
  • 2011-09-01
  • 2016-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-27
  • 1970-01-01
相关资源
最近更新 更多