2010-08-21 31 views
1

我有一个Oracle中的SQL Server 2005的 上的链接服务器(10.g)尝试使用导入Oracle表模式(S)到SQL汽车铸造Oracle列到SQL Server 2005的本机类型

Select * into ttdsls030010 
from openQuery(hades,'select * from baan.ttdsls030010 where rownum =1'); 

这会抛出一个Error converting data type DBTYPE_DBTIMESTAMP to datetime

有没有办法将Oracle类型自动加载到Sql类型?基本上,尽管可以在Oracle中使用to_char()等强制类型转换。这里的概念是,Oracle表模式可以随时更改,例如添加或删除列。如果发生这种情况,我需要刷新本地(sql)模式以与Oracle的模式相对应。

+1

我看到[此帖](http://sqlblog.com/blogs/john_paul_cook/archive/2009/07/31/linked-server-vs-openquery-for-handling-data-type-conversions.aspx )这意味着转换应该自动发生,并指出日期数据可能存在的问题... – pascal 2011-02-03 08:59:01

回答

0

这很可能是由于MS SQL Server datetime不支持的日期值 - 如documentation for the datetime datatype所示,它仅处理自1753年以来的日期,而Oracle dbtimestamp从约4700 BC开始。