Связанная таблица Informix в MS SQL Server игнорирует критерии? - PullRequest
1 голос
/ 02 августа 2010

У меня проблема со связанной таблицей Informix в MS SQL Server 2008r2. Когда я запрашиваю эту таблицу, она, кажется, игнорирует некоторые критерии, которые я ей передаю, но не другие. Например, если я поместил условие в поле rowdate, то в части удаленного запроса плана выполнения не будет показано ни одного предложения WHERE, но если я добавлю критерии в другое поле, например ACD, оно отобразится.

Кажется, он не соответствует никаким критериям для поля rowdate, но соответствует всем остальным.

Я знаю, что поле проиндексировано на стороне Informix. Если это помогает, таблица, которую я связываю, взята из Avaya CMS, и она связана через драйвер OpenLink ODBC.

EDIT:

Насколько я знаю, это Informix Dynamic Server 2000 и он находится на Solaris. Столбец выглядит как тип данных DATE, который является правильным. Я попытался передать критерии: «2010-08-03 00:00:00», «2010-08-03», «CONVERT» (дата, «2010-08-03») и еще несколько вариантов. Когда данные возвращаются на сервер SQL, они имеют формат yyyy-mm-dd.

При просмотре плана выполнения я вижу удаленный запрос со всеми остальными критериями, за которым следует фильтр только для поля rowdate.

Я знаю, что дата строки индексируется и что драйвер обычно передает эту информацию, когда мы используем ее в других приложениях (бизнес-объектах и ​​MS Access), и у них нет проблем

Ответы [ 2 ]

0 голосов
/ 23 ноября 2012

Пример запроса ниже:

select *
from OPENQUERY (AVAYA, 'select row_date,starttime,intrvl,acd from root.hagent where
row_date = ''NOV-22-2012'' and acd = 1 and split = 1 and starttime = 1900')

Кстати, мне удалось извлечь точные данные через MMM-DD-YYYY и Mmm-DD-YYYY.

0 голосов
/ 21 сентября 2010

Мне удалось понять это, но это самая странная вещь в истории.Я пошел по маршруту прохождения даты в разных форматах.По умолчанию я использую обычный YYYY-MM-DD, который, конечно, не работал, поэтому я попробовал YYYY-MMM-DD, но ничего не получилось.Пройдя МНОЖЕСТВО комбинаций, я нашел ту, которая работает Mmm-DD-YY, и она должна быть именно такой!SEP-21-2010 не будет работать, но Sep-21-2010.

Интересно, это просто странное зависание из-за Informix или чего-то в драйвере, в любом случае это работает.

Напримечание: кто-нибудь заметил, как странно, что люди из Америки пишут дату месяц, день год?Остановитесь и подумайте на секунду, вы говорите число 2410 как «Четыреста десять, две тысячи»?Самое приятное в этом - попытаться спросить себя: какой сегодня день независимости США?Большинство американцев говорят: «Это легко, ты, извилистый человек, это 4 июля», хмммм, день, месяц (год), единственная дата, которую они говорят по правильному пути, - это дата, когда они обрели независимость.Я оставлю это на усмотрение SO сообщества, чтобы увидеть иронию в этом

...