为啥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
。
我强烈建议在表中转换它,因为NTEXT
、TEXT
和IMAGE
数据类型将从 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 打印许多不需要的标题?
pl/sql developer中文乱码,为啥呢?怎么解决?Oracle问题