为啥oracle数据库链接不显示来自sql server的图像类型的列

Posted

技术标签:

【中文标题】为啥oracle数据库链接不显示来自sql server的图像类型的列【英文标题】:why dosen't oracle database link show column with image type from sqlserver为什么oracle数据库链接不显示来自sql server的图像类型的列 【发布时间】:2018-02-12 12:04:36 【问题描述】:

我们有 2 个服务器:

Windows 2012 上的 1-sqlserver 2012

Linux 上的 2-oracle 11g

我们希望在 oracle 数据库的 sql server 中显示 table1 的信息,并在它们之间创建数据库链接

当我有类似的查询时

"select ID,NAME from TABLE1" in plsql

我可以看到真实的结果

但是当我有类似的查询时

"select ID,NAME,picimage from TABLE1" in plsql

我收到这些错误 1 ORA-03113: 通信通道上的文件结束 2 ORA-03114: 未连接到 oracle

谁能帮帮我?

【问题讨论】:

【参考方案1】:

Oracle 很可能无法识别IMAGE 数据类型。在 SQL Server 中已弃用,请在查询或表中将该列转换为 VARBINARY

我强烈建议在表中转换它,因为NTEXTTEXTIMAGE 数据类型将从 SQL Server 的后续版本中删除。 Microsoft 建议改用NVARCHAR(MAX)VARCHAR(MAX)VARBINARY(MAX)

https://docs.microsoft.com/en-us/sql/t-sql/data-types/ntext-text-and-image-transact-sql

【讨论】:

我可以用另一台装有 sqlserver 2008 和 windows server 2008 的机器解决这个问题,但是当我迁移到 windows 2012 和 sql server 2012 时遇到了这个问题 检查数据库驱动程序的版本(ODBC 或任何你使用的)。如果它们不同,那可能就是问题所在。您可能需要检查所述驱动程序或数据库链接的设置。我怀疑那里存在差异。 感谢您的帮助,但我在发布此问题之前已经检查过了,我没有发现 windows 2008 和 windows 2012 中的 64 位 ODBC 配置有任何区别 Oracle 中的数据库链接到两台服务器的情况如何?

以上是关于为啥oracle数据库链接不显示来自sql server的图像类型的列的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Oracle Sql*Plus 打印许多不需要的标题?

在 Oracle PL/SQL 视图中管理 DB 链接

pl/sql developer中文乱码,为啥呢?怎么解决?Oracle问题

Oracle SQL 显示来自同一个表的匹配数据

pl/sql developer中文乱码,为啥呢?怎么解决?Oracle问题

pl/sql developer中文乱码,为啥呢?怎么解决?Oracle问题