Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
32 января, или где искать проблему!!!
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! При обновлении поля таблицы получаю шокирующую ошибку: SQL Error (-1206): Invalid day in date 32 января??? Запрос вот такой: update table1 set date1 = (select date1 from table2 where table1.RecID = table2.RecID) where year(date1) < 1960 Первая мысль - щелкает триггер таблицы table1 и формирует при этом некорректную дату. Триггер удалил для верности. Ошибка осталась. Второе предположение - в таблице table2 поле date1 имеет неверный формат изначально. Но как? Тип данных DATE. Поиски запросами кривых дат с днем, который не соответствует месяцу, в обеих таблицах дают отрицательный результат. В обеих таблицах поле date1 имеет тип DATE not NULL Как быть? Уже сбился с ног. Где искать проблему? Сервер: IBM Informix Dynamic Server Version 9.40.UC3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 13:10 |
|
||
|
32 января, или где искать проблему!!!
|
|||
|---|---|---|---|
|
#18+
Попробуйте всё-таки найти строку, вызывающую ошибку, при помощи наложения допфильтров типа Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 13:29 |
|
||
|
32 января, или где искать проблему!!!
|
|||
|---|---|---|---|
|
#18+
Беда в том, что обе таблицы я выгрузил в файл, а потом залил их в MSSQL. Все записи легли чудно. Ни одна запись не браковалась из-за неверного формата даты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 13:42 |
|
||
|
32 января, или где искать проблему!!!
|
|||
|---|---|---|---|
|
#18+
Еще парадокс! dbexport и последующий dbimport отработали без ошибок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 13:45 |
|
||
|
32 января, или где искать проблему!!!
|
|||
|---|---|---|---|
|
#18+
Обновите информикс - в ветке 9.4 есть и более новые ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 14:02 |
|
||
|
32 января, или где искать проблему!!!
|
|||
|---|---|---|---|
|
#18+
Ну что же! Попробую развернуть базу не триальной десятке, скажем. Но если возникают такие вопросы, поневоле стремишься найти ответ. Даже если заработает на десятке, то до истины докопаться в любом случае хочется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 14:08 |
|
||
|
32 января, или где искать проблему!!!
|
|||
|---|---|---|---|
|
#18+
RuslanAdmБеда в том, что обе таблицы я выгрузил в файл, а потом залил их в MSSQL. Все записи легли чудно. Ни одна запись не браковалась из-за неверного формата даты.Это наводит на мысль, что данные в таблицах правильные, а некорректность возникает во время выполнения запроса. Можно попробовать собрать дополнительную информацию, сохранив новую дату в дополнительном - целочисленном - столбце, а не модифицируя существующий столбец. Кроме того, локализована ли база данных и каким именно образом выполняется запрос (в смысле локализации клиента)? Что известно про переменные, заведующие датами (DBDATE, GL_DATE, etc.)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 14:17 |
|
||
|
32 января, или где искать проблему!!!
|
|||
|---|---|---|---|
|
#18+
Переменные: DBDATE=DMY4/ DBTIME='%y - %m - %d %H:%M:%S' GL_DATE - не задана Локаль ru_RU.866 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 14:47 |
|
||
|
32 января, или где искать проблему!!!
|
|||
|---|---|---|---|
|
#18+
Я бы все таки доп условиями, например через rowid, постарался бы вычислить конкретную строк с данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 16:01 |
|
||
|
32 января, или где искать проблему!!!
|
|||
|---|---|---|---|
|
#18+
В самом крайнем случае можно прокрутить по всем записям цикл и через обработчик ошибок получить rowid строки в которой неправильная дата. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2007, 18:37 |
|
||
|
32 января, или где искать проблему!!!
|
|||
|---|---|---|---|
|
#18+
RuslanAdmПеременные: DBDATE=DMY4/ DBTIME='%y - %m - %d %H:%M:%S' GL_DATE - не задана Локаль ru_RU.866 Эти параметры были при выгрузке или загрузке БД ? Или на клиенте при выполнении запросов ? Откуда вы их взяли ? Странноватый формат разделителя для русской локали. И в стандарте и в жизни используется . (точка). Я не очень понял из предыдущего, при чем тут MS SQL, но загрузка данных туда без ошибок, также как и загрузка dbimport-ом, вовсе не обозначает, что данные (даты) легли именно такие, какие нужно. Например, вы могли ошибиться с форматом даты при загрузке или выгрузке (т.е. просто не указать его) и будет использоваться формат по умолчанию для этой локали (а он у вас сильно не совпадает). Опять таки, при чем здесь 32 января ? Или это образно ? :) Скорее всего, 29 февраля не в высокосном году, а год мог получиться неверным по простой причине загрузки двух символов года вместо четырех (получим другое столетие)... Проверьте параметр DBCENTURY, если он установлен... Причин может быть много. Еще один момент. С такой ситуацией (неверная дата в поле) я все же встречался несколько раз и причины были следующие: - битый индекс на этой таблице (легко проверяется oncheck -cI -s) - проблемы в приложении, которое умудрялось как то запихнуть кривые данные в таблицу во время сбоев (отрубалось насильно приложение или сервак) Но во всех этих случаях сами данные из столбца не читались, т.е. ошибки возникали уже на этапе простого чтения таблицы. А вы говорите, что выгрузка данных таблицы проходит нормально, значит мало похоже на этот случай... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2007, 16:38 |
|
||
|
32 января, или где искать проблему!!!
|
|||
|---|---|---|---|
|
#18+
я бы сначала сделал oncheck -pd потом проверил индексы как указано выше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 10:19 |
|
||
|
32 января, или где искать проблему!!!
|
|||
|---|---|---|---|
|
#18+
cprя бы сначала сделал oncheck -pd потом проверил индексы как указано выше Может все таки oncheck - с d ? Тогда можно и все сразу oncheck -cDI -sqy ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 17:14 |
|
||
|
32 января, или где искать проблему!!!
|
|||
|---|---|---|---|
|
#18+
vasilis cprя бы сначала сделал oncheck -pd потом проверил индексы как указано выше Может все таки oncheck - с d ? Тогда можно и все сразу oncheck -cDI -sqy я бы индексы не чинил, а пересоздавал заново. Вроде бы Informix так рекомендует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 18:31 |
|
||
|
|

start [/forum/topic.php?fid=44&tid=1608350]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 341ms |

| 0 / 0 |
