我正在維護一個遺留應用程序,最近我聯繫過人們在嘗試填充我們的一個oracle表時遇到錯誤消息。現在,這些oracle表並不在我們的意料之中,但我仍然想嘗試一些東西來幫助找到問題。Oracle唯一約束錯誤信息
不管怎樣,錯誤消息如下:
值java.sql.SQLException:ORA-00001:唯一約束(REO0 PK_TableName)違反:
我知道我可以找到很多的通過谷歌和這裏關於這個錯誤信息在線信息。這不是我的問題所在。
問題是:此處所示(我把以粗體顯示)的表名,是 表的名稱,或者是 PK_部分添加到表示「主鍵」?
原因,我想問的是:我不能直接得到這個數據庫,但不知何故,我可以看到REO0所有的表,我可以找到一個與表名卻沒有一個與* PK_TableName *作爲名稱爲一張桌子。因此,如果這個PK_引用類似「主鍵」(違反約束的東西),那麼它會更有意義。
名稱由誰創造了它分配的(除非它是一個默認的'SYS $'名),它是使用'PK_'常見的模式。但它只是一個手動維護的數據標準,所以你應該查詢'ALL_CONSTRAINTS'表來檢查它確實指的是''。我不清楚命名是否是自動的,並且我已經看到他們出於某種原因失去了一些獨特之處... –
2011-06-10 08:52:07
謝謝,我使用了這個,發現了一些更有用的信息在all_constraints中。表名確實是PK_之後的表名。 – Yoh 2011-06-10 09:28:30