liquibase Oracle ORA-00942

时间:2016-04-27 12:32:35

标签: oracle liquibase

当使用Oracle数据库调用liquibase migrate,generatechangelog等时,当liquibase调用oracle jdbcdriver获取元数据时,我们总是得到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)

1 个答案:

答案 0 :(得分:2)

通过跟踪ojdbc_g驱动程序中的日志记录找到问题。事实证明,jdbcdriver中的getSchemas()在Oracle中查询'ALL_USERS`视图

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

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") ...