当使用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)
答案 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")
...