2016-04-27 61 views
0

調用liquibase遷移,generatechangelog等..與Oracle數據庫的時候,我們永諾得到ORA-00942錯誤時liquibase呼籲元liquibase甲骨文ORA-00942

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439) 
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395) 
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802) 
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436) 
+0

再次創建視圖............................. .................. –

+1

我su通過閱讀[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)提示您改進示例。 – IlGala

回答

2

甲骨文jdbcdriver發現問題通過跟蹤ojdbc_g驅動程序中的日誌記錄。事實證明,getSchemas()在jdbcdriver查詢Oracle中

DatabaseMetaData metadata=conn.getMetaData(); ResultSet rs2=metadata.getSchemas();

'ALL_USERS`視圖

SELECT username AS table_schem,null as table_catalog FROM all_users ORDER BY table_schem ORA-00942:表或視圖不存在

在我們的數據庫,ALL_USERS視圖不存在,所以我在Oracle標準方法

CREATE OR REPLACE FORCE VIEW "ALL_USERS" ("USERNAME", "USER_ID", "CREATED") ...

+1

如果你的Oracle安裝中不存在'all_users',那麼你的安裝就會被嚴重搞砸了。我寧願假設你的Oracle用戶在該視圖上沒有'select'特權(雖然這是非常不尋常的,也可能表明你的安裝有問題) –

+0

或者對sys.all_users視圖沒有權限:) –

+1

這就是我的意思是「*你的Oracle用戶沒有在該視圖上的選擇特權*」 - 這也是非常不尋常的 –