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

低调的感觉 2015-02-06 10:17:55
sqlserver2005 通过链接服务器 连 oracle 查询
如果查询的表中有【TIMESTAMP(6)】类型的字段,就会报错
请问怎么解决


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


链接服务器 "XXXX" 的 OLE DB 访问接口 "MSDAORA" 为列 "XXX" 提供了无效的元数据。The data type is not supported.
...全文
915 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wd031415 2017-03-22
  • 打赏
  • 举报
回复
楼主,您好,问题解决了么,现在遇到同样问题
toumingdehai 2015-12-03
  • 打赏
  • 举报
回复
楼主问题解决了吗? 我在sqlserver2008r2上链接oracle 执行T_SQL 四部分查询语句 同样是因为时间戳格式报错,跪求解决办法 消息 7354,级别 16,状态 1,第 2 行 链接服务器 "ORCL" 的 OLE DB 访问接口 "OraOLEDB.Oracle" 为列 "CREATETIME" 提供了无效的元数据。The data type is not supported.
  • 打赏
  • 举报
回复
我记得 在2008R2中开始支持 类似 oracle中的 timestamp数据类型了。 由于你的是2005版本,是否可以考虑在你的sql语句中,把 这列 【TIMESTAMP(6)】 给格式化一下呢
zbdzjx 2015-02-06
  • 打赏
  • 举报
回复
试试看在SQL查询语句中转换一下。 SQL Server和Oracle的字段类型对应表中没有“TIMESTAMP(6)”这个类型,所以报错。
还在加载中灬 2015-02-06
  • 打赏
  • 举报
回复
那么,在提交的语句中不查询那列,可不可以通过呢
Tiger_Zhao 2015-02-06
  • 打赏
  • 举报
回复
Oracle 的 TIMESTAMP 其实是可以指定小数位的日期时间。SQL Server 中比较接近的是 DateTime 类型,不过固定是3位小数,即 TIMESTAMP(3)。
TIMESTAMP(6) 超过了 DateTime 的精度,就没有直接对应的了,大概只能在Oracle端定义视图或存储过程,用 TO_CHAR()、TO_TIMESTAMP() 进行字符串的转化,SQL Server 端的语句才能按字符串来使用。

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧