当前位置: 代码迷 >> Sql Server >> sqlserver2005 连 oracle 查询出错:The data type is not supported
  详细解决方案

sqlserver2005 连 oracle 查询出错:The data type is not supported

热度:986   发布时间:2016-04-24 09:08:08.0
sqlserver2005 连 oracle 查询报错:The data type is not supported.
sqlserver2005 通过链接服务器 连 oracle 查询
如果查询的表中有【TIMESTAMP(6)】类型的字段,就会报错
请问怎么解决


注:不可更改oracle数据库字段类型


链接服务器 "XXXX" 的 OLE DB 访问接口 "MSDAORA" 为列 "XXX" 提供了无效的元数据。The data type is not supported.
------解决思路----------------------
那么,在提交的语句中不查询那列,可不可以通过呢
------解决思路----------------------
试试看在SQL查询语句中转换一下。
SQL Server和Oracle的字段类型对应表中没有“TIMESTAMP(6)”这个类型,所以报错。
------解决思路----------------------
Oracle 的 TIMESTAMP 其实是可以指定小数位的日期时间。SQL Server 中比较接近的是 DateTime 类型,不过固定是3位小数,即 TIMESTAMP(3)。
TIMESTAMP(6) 超过了 DateTime 的精度,就没有直接对应的了,大概只能在Oracle端定义视图或存储过程,用 TO_CHAR()、TO_TIMESTAMP() 进行字符串的转化,SQL Server 端的语句才能按字符串来使用。
------解决思路----------------------

我记得 在2008R2中开始支持 类似 oracle中的 timestamp数据类型了。

由于你的是2005版本,是否可以考虑在你的sql语句中,把 这列 【TIMESTAMP(6)】 给格式化一下呢
  相关解决方案