|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
Добрый день. Помогите разобраться с проблемой. После миграции Informix с версии 9.4UC4 на 11.10UC2 появилась странная проблема . Проблема заключается в ошибке "391: Cannot insert a null into column" при вставке пустого поля в таблицу вида : Код: plaintext 1. 2. 3. 4. 5. 6.
Вставлять пробую поле : Код: plaintext 1.
Так вот получается что не отрабатывает условие Код: plaintext
Подскажите из за чего это может быть и где копать ? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2009, 12:40 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
KyRo chargeoffind smallint , default 0 not null Плохо копировали? К чему относится default 0 not null, учитыва выделенную мною запятую? KyRo Вставлять пробую поле : Код: plaintext 1.
Так вот получается что не отрабатывает условие Код: plaintext
Подскажите из за чего это может быть и где копать ? Получается что Вы вставляете все поля и все не NULL... Поэтому получается, или вышеупомянутая запятая есть в действительности - тогда непонятно, как у вас вообще таблица создалась, или запятая - Ваша очепятка в форуме, а вы смотрите неполный DDL таблицы, и, может быть, у вас имеется триггер на insert на этой таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2009, 12:51 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
авторПолучается что Вы вставляете все поля и все не NULL... Поэтому получается, или вышеупомянутая запятая есть в действительности - тогда непонятно, как у вас вообще таблица создалась, или запятая - Ваша очепятка в форуме, а вы смотрите неполный DDL таблицы, и, может быть, у вас имеется триггер на insert на этой таблице. Прошу прощения - это опечатка . Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2009, 13:17 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
К сожалению вроде нашел эту ошибку на баг репорте ( И опять мы наступили на те же грабли что нужна версия 11.10.xC2W5. Какой то этот 11.10 вообще баговитый , второй баг который нашли за короткое время . баг номер IC54468 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2009, 13:31 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
Только вот непонятно зачем Вы в поле типа SMALLINT вставляете строковое ('') значение... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2009, 13:56 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
Евгений ФадеевТолько вот непонятно зачем Вы в поле типа SMALLINT вставляете строковое ('') значение... Не могу сказать , это сторонняя разработка , так было и наверно так надо ) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2009, 17:18 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
KyRoЕвгений ФадеевТолько вот непонятно зачем Вы в поле типа SMALLINT вставляете строковое ('') значение... Не могу сказать , это сторонняя разработка , так было и наверно так надо ) А поменять можете? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2009, 17:54 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
KyRoНе могу сказать , это сторонняя разработка , так было и наверно так надо )Вот в последнем я совсем не уверен. Вообще странно что он не ругается на несоответствие типов. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2009, 18:29 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
Евгений ФадеевKyRoНе могу сказать , это сторонняя разработка , так было и наверно так надо )Вот в последнем я совсем не уверен. Вообще странно что он не ругается на несоответствие типов.И, кстати, я проверил у себя (попробовал сделать временную таблицу с такой же как у Вас структурой) - при вставке '' он точно так же ругается с -391. А версия у меня 11.50 FC2. В общем рекомендую поправить кривой код. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2009, 18:35 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
Евгений ФадеевВообще странно что он не ругается на несоответствие типов. Так это же старая фишка информикса - неявное преобразование типов. Об этом дискутировали не раз - свои плюсы, свои минусы :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2009, 22:01 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
авторА поменять можете? Нет поменять код не сможем , там вся база утыкана такими преобразованиями. Если что то сменим , при следующем апдейте софта , не соберем концы с концами. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2009, 13:26 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
KyRoавторА поменять можете? Нет поменять код не сможем , там вся база утыкана такими преобразованиями. Если что то сменим , при следующем апдейте софта , не соберем концы с концами. Выглядит жёстко... Варианты: 1) поменять запрос - вычёркиваем :( 2) Убрать not null со столбца (?) 3) Просить IBM добавить возможность переменной конфига сервера выключить неявное преобразование типов :) 4) перехватывать запрос по пути к серверу и править :)) 5) самим пропатчить информикс Ещё варианты будут? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2009, 13:44 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
KyRo После миграции Informix с версии 9.4UC4 на 11.10UC2 на 9.4 UC8 тоже ругается! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2009, 13:47 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
KyRoавторА поменять можете? Нет поменять код не сможем , там вся база утыкана такими преобразованиями. Если что то сменим , при следующем апдейте софта , не соберем концы с концами. Ёпрст, так система всё же модифицируема по функционалу - то есть обновляется и развивается? Почему исполнитель не может поменять функционал? Или они не декларируют поддержку выже IDS 9.4C4? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2009, 13:50 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
исполнитель = разработчик ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2009, 13:51 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
авторна 9.4 UC8 тоже ругается! Хмм , может я не совсем корректно привел пример , скорее в проблеме в текстовое поле идет вставка null значения и в таком случае должен выставится определенный флаг вместо этого null . авторЁпрст, так система всё же модифицируема по функционалу - то есть обновляется и развивается? Почему исполнитель не может поменять функционал? Или они не декларируют поддержку выже IDS 9.4C4? Нет тут несколько сложнее . Они декларируют поддержку софта отдельно от поддержки СУБД. То есть поддержку СУБД надо покупать у них отдельно. А в таком случае на запрос решения проблемы, они просто ответили что "Это известная проблема Informix , мы с ней сталкивались. Обращайтесь в вашу поддержку Informix " И в общем то полностью правы . С какой стати им тратить человеческие ресурсы для изменения кода и тестирования изменений , только из за того что наше руководство не соизволит выделить ресурсы на официальную поддержку. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2009, 14:19 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
KyRo Код: plaintext 1. 2. 3.
Вставлять пробую поле : Код: plaintext 1.
Так вот получается что не отрабатывает условие Код: plaintext
Подскажите из за чего это может быть и где копать ? И напоследок - вдруг чего пропустили: default 0 не отрабатывает (и никому не должен), потому что в INSERT явно присутствует chargeoffind.. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2009, 14:31 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
KyRo Хмм , может я не совсем корректно привел пример , скорее в проблеме в текстовое поле идет вставка null значения и в таком случае должен выставится определенный флаг вместо этого null . Вот тут я думаю вы тут всех нас запутали.... Какое текстовое поле? В таблице его нет, в клиенте что-ли? Можно конечно, и на Informix Client чего подумать - но это из области фантастики... Или вы при копировании примера ещё где-то ошиблись? KyRo "Это известная проблема Informix , мы с ней сталкивались. Обращайтесь в вашу поддержку Informix " ну покопаем - может и действительно предложенный параметр уже существует :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2009, 15:16 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
Давайте что бы не вводить больше не кого в заблуждение , я приведу в понедельник схему живой таблицы с которой произошла проблема и поля которое выдало данную ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2009, 15:31 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
Данный пример , это моя попытка с повторить проблему , наверно не совсем удачная. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2009, 15:38 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
Привожу как и говорил пример живой таблицы. Затык пошел по полю archflag Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2009, 11:12 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
Ваша "настоящая" таблица ничем, принципиально, не отличается. Проблема в данном случае в том, что криворукие разработчики того софта, который вы используете написали кривой код (в частности заложились на неявные преобразования типов), который, вероятно, и работал со строго определенными версиями СУБД, клиента и т.п., но с точки зрения общей инженерной дисциплины работать не должен. И при минимальных изменениях среды он работать перестал. В результате вы имеете проблемы. Лично от себя могу предложить два варианта: 1. Таки поправить кривой код на нормальный 2. Вооружиться ложкой и начать выедать мозг поставщику ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2009, 12:05 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
Евгений ФадеевВаша "настоящая" таблица ничем, принципиально, не отличается. Проблема в данном случае в том, что криворукие разработчики того софта, который вы используете написали кривой код (в частности заложились на неявные преобразования типов), который, вероятно, и работал со строго определенными версиями СУБД, клиента и т.п., но с точки зрения общей инженерной дисциплины работать не должен. И при минимальных изменениях среды он работать перестал. В результате вы имеете проблемы. Лично от себя могу предложить два варианта: 1. Таки поправить кривой код на нормальный 2. Вооружиться ложкой и начать выедать мозг поставщику Нет код , править нельзя. Потом при следующем обновлении все вылезет боком, а вот второй вариант я бы с удовольствием , но не мои это выходит за рамки моих полномочий , хотя с огромным бы удовольствием ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2009, 12:13 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
KyRo, спросите хоть у разработчиков, что по их религиозным убеждениям должно сохраниться в результате в этом поле? 0? Или пустая строка? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2009, 13:36 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
KyRo, есть подозрение, что сам сервер тут не при чем - нужно подкручивать настройки используемой библиотеки доступа или сам Informix-Client... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2009, 13:39 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
Евгений ФадеевПроблема в данном случае в том, что криворукие разработчики того софта, который вы используете написали кривой код (в частности заложились на неявные преобразования типов), который, вероятно, и работал со строго определенными версиями СУБД, клиента и т.п., но с точки зрения общей инженерной дисциплины работать не должен. И при минимальных изменениях среды он работать перестал. В результате вы имеете проблемы. Полностью поддерживаю. Такие же проблемы (или очень похожие) практически всегда обнаруживались при смене серверов, которое хоть и крайне редко, но приходилось делать по требованию клиента. Т.е. в новых версиях обнаруживались просто более жесткие требования к соблюдению стандартов или, говоря другими словами можно сказать, что в старых версиях сервера были мелкие баги, которые позволяли работать "кривым" приложениям. Криворукость разработчиков достаточно условная - ранее ведь работало и сервер пропускал, а проверить на "будущих" версиях они не могли. Так что смена версии сервера должна быть всегда одобрена поставщиком софта (после тщательного тестирования приложения самим поставщиком и заказчиком). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2009, 14:06 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
vasilisКриворукость разработчиков достаточно условная - ранее ведь работало и сервер пропускал, а проверить на "будущих" версиях они не могли.C моей точки зрения криворукость безусловная, поскольку указанный код (с формальной точки зрения - без оглядки на версии) работать не должен. И то, что он работал - это не результат сознательных действий разработчиков, а удачное стечение обстоятельств. to KyRo Ну, если все так плохо, могу предложить, например, написать триггер на INSERT в котором отрабатывать ситуацию. Хотя, конечно, это попытки чинить косяки костылями... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2009, 16:18 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
Нет, не хочу как Вы говорите чинить косяки костылями и изобретать велосипед тоже не хочется . Я просто доложил руководству что данная проблема есть официально задокументированный баг , нужна новая версия и официальная поддержка , дальше пускай думают что им лучше , глюкаво работающая система или финансы вложенные в обновления софта. А то я счас разок что то подправлю, а потом буду править и ловить ошибки постоянно. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2009, 10:59 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
KyRoЯ просто доложил руководству что данная проблема есть официально задокументированный баг , нужна новая версия и официальная поддержка Вы имеете ввиду баг сервера "номер IC54468", который сами же и нашли ? Так вам же показали, что это не так - на других версиях поведение сервера аналогичное. Вероятней всего это баг приложения, который проявился со временем на более новых версиях сервера, и если вы переходили на версию 11.10 без одобрения разработчика софта и без тестирования с их стороны, то это целиком ваша вина и проблема. Так что сваливать все на баг Информикса, по меньшей мере, не корректно. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2009, 11:40 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
KyRoЯ просто доложил руководству что данная проблема есть официально задокументированный баг , нужна новая версия и официальная поддержка , дальше пускай думают что им лучше , глюкаво работающая система или финансы вложенные в обновления софта.То есть пошли по пути "кушать ложкой мозг до победного"! :) Ну, в общем и целом - поддерживаю. Только помните (как верно указали постом выше) - это не проблема Informix'а. Это проблема именно приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2009, 12:37 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
авторВероятней всего это баг приложения, который проявился со временем на более новых версиях сервера, и если вы переходили на версию 11.10 без одобрения разработчика софта и без тестирования с их стороны, то это целиком ваша вина и проблема. Пробовали согласовать с ними , но ответ был на вроде " Мы не проводили полное тестирование на данной версии СУБД , поддерживаем 11.5 , пробуйте на свой страх и риск". Политика компании разработчика понятна , они в настоящее время ориентированны на Oracle и пытаются нас склонить к миграции всех систем на данную СУБД. Им это очень выгодно , потому как только стоимость работ по переводу всех систем , без лицензий,доработок и.т.д просчитали порядка 200 - 250 трудодней , где 1 трудодень равен 1000 уе. По этому и начали пробовать сами , так как на 9.4 работать становится не возможно, а что бы они больше не переводили стрелки на сапорт Informix -а , этот сапорт должен быть . Только тогда мы сможем однозначно утверждать что это не баг Informix -а , а кривое ПО. Баг же в данном случае просто как довод для руководства в сторону оплаты сапорта , а не камень в огород Informix -a ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2009, 12:56 |
|
Help Error 391: Cannot insert a null into column
|
|||
---|---|---|---|
#18+
KyRo, знакомая структура, это CTL Prime? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2009, 14:50 |
|
|
start [/forum/topic.php?all=1&fid=44&tid=1607676]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
73ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 10ms |
total: | 180ms |
0 / 0 |