У меня довольно простой сценарий, одна таблица, одна последовательность для автоматической генерации первичных ключей:
CREATE TABLE foo (event_id NUMBER(19,0)....
CREATE SEQUENCE event_seq
Часть отображения спящего режима выглядит следующим образом:
...
<id name="id" column="EVENT_ID" type="long">
<generator class="native">
<param name="sequence">event_seq</param>
</generator>
</id>
...
Хорошо работает без проблем в течение длительного времени. Но недавно я получил это:
ORA-01400: cannot insert NULL into ("TESTING"."FOO"."EVENT_ID")
Значит ли это, что Oracle не удалось сгенерировать порядковый номер для EVENT_ID?
В чем может быть причина ? Видимо эта ошибка пришла из 64-битного Oracle, это может быть связано с проблемой? Удаление и воссоздание таблицы и последовательности не помогает, просто не хочет работать на этой конкретной машине. Независимо от того, что я делаю, я не могу воспроизвести это, ошибка происходит от одного из пользователей, который в значительной степени недоступен.
Есть идеи?
---------------
Задача решена
---------------
Первоначальная проблема была обнаружена в Oracle 10.2.0.1.0 64-битной версии при использовании драйвера 10.2.0.1.0 в 32-битной ОС. После обновления драйвера до 11.2.0.2.0 проблема исчезла. Все зависит от виртуальных машин, если они работают как 32-битная или 64-битная система.