首页 文章

liquibase Oracle ORA-00942

提问于
浏览
0

当使用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 回答

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

相关问题