【发布时间】:2016-09-29 04:47:19
【问题描述】:
生产 IBM WebSphere 集成总线的 ESQL 计算节点包含以下 ESQL 查询:
SET result[] =
SELECT p.Id, p.Date, p.Value
FROM DatabaseName.dbo.TableName AS p
WHERE p.Date >= InputRoot.XMLNSC.ns:RequestType.Request.DateFrom
AND p.Date <= InputRoot.XMLNSC.ns:RequestType.Request.DateTo;
DateFrom 和 DateTo 在 XSD 中被描述为 xsd:dateTime,因此被视为 TIMESTAMP。
集成总线产生以下查询:
SELECT p.Id, p.Date, p.Value
FROM DatabaseName.dbo.TableName as p
WHERE p.Date < TIMESTAMP'2016-01-02 00:00:00' and p.Date >= TIMESTAMP'2016-01-01'
不正确导致异常
[IBM][ODBC SQL Server 有线协议驱动程序][Microsoft SQL Server]
'2016-09-29 00:00:00' 附近的语法不正确
更奇怪的是,测试 IBM WebSphere 运行良好并且不会生成这个奇怪的“TIMESTAMP”前缀,而生产集成总线是测试集成总线虚拟机的完整克隆。
测试和生产远程数据库的 SQL Server 版本及其兼容性级别相同(SQL Server 2008 R2;80)。
异常详情:
目录 = 'BIPmsgs'
数字 = 2322
文本 = 子 SQL 异常
文件 = '/build/S1000_slot1/S1000_P/src/DataFlowEngine/MessageServices/ImbOdbc.cpp'
线 = 3776
函数 = 'ImbOdbcStatement::checkRcInner'SQL 状态 = HY000
本机错误代码 = 102
错误文本 = [IBM][ODBC SQL Server Wire Protocol driver][Microsoft SQL Server]'2016-09-29 00:00:00' 附近的语法不正确。
【问题讨论】:
-
你能澄清哪个数据库有问题吗?
-
@TimBiegeleisen 测试和生产服务器都是 SQL Server 2008 R2。
标签: sql-server exception odbc ibm-integration-bus extended-sql