我有相當簡單的場景,一個表,用於自動生成主鍵一個序列:Hibernate映射的Hibernate和ORA-01400:不能插入NULL
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,它可能與問題有關嗎?刪除並重新創建表格和序列不會有幫助,它只是不想在特定的機器上工作。無論我做什麼,我都無法重現這一點,錯誤來自其中幾乎無法訪問的用戶之一。
任何想法?
--------------- 問題解決 ---------------
與檢測,由原發證在32位操作系統上使用驅動程序10.2.0.1.0時,Oracle 10.2.0.1.0 64位。一旦驅動程序更新到11.2.0.2.0,問題就消失了。這一切都取決於虛擬機是否以32位或64位系統運行。
檢查是否連接到數據庫(如在應用程序服務器的連接配置的用戶池)擁有序列的適當權利。如果沒有,然後授予他們:'授予select event_seq到<>;' –
2011-05-12 11:44:20