2017-08-26 51 views
0

希望有人會有一些洞察到這一問題。有很多關於這個錯誤的帖子,我已經閱讀了所有這些錯誤。Oracle錯誤ORA-00942,軌道3環境

運行在Oracle11分貝一個Rails 3應用程序。 Rails試圖創建一個新的對象,並且它爆炸了(500),並且我得到了ORA 00942,表或視圖不存在。表格確實存在。序列存在,我可以寫入表中並使用SQL Developer和用於運行rails應用程序的相同憑據來提取序列號。權限看起來很好。我查看了軌道模型關聯,並追蹤了這些對象的所有表和序列。

一個表中的列是CLOB列,好像有可以與數據類型的問題。但這些似乎來自Java環境。

我具有架構所有者憑證,是有一個日誌,我可以檢查,看看是導致該錯誤的確切的SQL語句?我可以打開任何一種較低級別的日誌記錄,以獲取有關正在發生的事情的更多信息。

+0

它可能像表名的大小寫敏感一樣簡單嗎?如果一個ora表被命名爲全部大寫,則可以不使用語音標記,也可以使用它們,但將查詢中的全部大寫的表名稱放在該查詢中。如果表格名稱不全是大寫字母,那麼您的查詢必須使用語音標記並複製表格的案例。 –

回答

0

這結束了對序列的缺失補助。非常令人沮喪,甲骨文報告以此爲00942.

如果遇到此問題,並且該表存在,在已經取得的表和序列都贈款仔細看。您可以在SQL Developer中的語法如下做到這一點:

SELECT * FROM DBA_TAB_PRIVS在表格名= name_of_thing_you_want

是,序列也屬於table_name的標題下。

要創建補助:

授予選擇ON the_name_of_the_object TO name_of_the_user

我希望這可以幫助別人。

+0

最後一個注意事項是,如果您遇到這種情況,那就是一個導軌環境,請記住,您需要查看的不僅僅是對象,而是創建對象或通過回調創建或觸及的所有對象。看看你的模型協會。 – SeattleDucati