ESQL вычислительного узла производства IBM WebSphere Integration Bus содержит следующий запрос: ESQLESQL производит неправильный синтаксис около метки времени
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 Wire Protocol] [Microsoft SQL Server]
Неправильный синтаксис около '2016-09-29 00:00:00'
Что более странно, тест IBM WebSphere работает хорошо и не генерирует этот странный «TIMESTAMP» pre fix, а шина интеграции производства - это полный клон тестовой виртуальной машины.
SQL Server версии тестовой и производственной удаленной базы данных и уровни ее совместимости одинаковы (SQL Server 2008 R2; 80).
Сведения об исключении:
Каталог =
Номер 'BIPmsgs' = 2322
Text = Child SQL исключение
File = «/ сборки/S1000_slot1/S1000_P/SRC/DataFlowEngine/MessageServices/ImbOdbc.cpp»
Line = 3776
Функция = 'ImbOdbcStatement :: checkRcInner'SQL State = HY000
Исходный код ошибки = 102
Текст ошибки = [IBM] [драйвер протокола проводки SQL-сервера ODBC] [Microsoft SQL Server] Неверный синтаксис рядом с «2016-09-29 00:00:00».
Можете ли вы уточнить, в какой базе данных возникает проблема? –
@TimBiegeleisen Оба тестовых и производственных сервера - это SQL Server 2008 R2. –