繁体   English   中英

使用OPENQUERY将日期从Oracle处理到SQL Server 2005

[英]Handling Dates from Oracle to SQL Server 2005 using OPENQUERY

我已经将SQL Server 2005链接到Oracle Server,并且正在使用OpenQuery()将数据从Oracle传递到SQL Server。

因此,例如,以下查询可以正常工作:

SELECT *
FROM OPENQUERY(ORACLE_LINK, 'SELECT FIELD1
    FROM ORACLE.TABLE1');

一切正常,除非我要求输入Oracle数据库中的日期/时间字段。 例如,假设TABLE1有十个字段,其中一个是时间戳。 如果我要求除时间戳以外的所有九个字段,则可以使用。 如果我问:

SELECT *
FROM OPENQUERY(ORACLE_LINK, 'SELECT *
    FROM ORACLE.TABLE1');

我收到以下错误:

OLE DB provider "MSDAORA" for linked server "ORACLE_LINK" returned message "Oracle error occurred, but error message could not be retrieved from Oracle.".
OLE DB provider "MSDAORA" for linked server "ORACLE_LINK" returned message "Data type is not supported.".

如果我只要求时间戳字段,我也会得到相同的错误。

处理此错误的最佳方法是什么? 谢谢。

我使用此功能(部分代码)执行此操作:

select @StringOut = '{ts ''''' + convert(varchar(20), @DateIn, 20) + ''''' }';
RETURN @StringOut

这进入查询:

and procedure_date_dt = ' + dbo.TimestampString(@date) + '
and event_type = ''''Time Notation''''

它在我运行时有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM