assertj-db
assertj-db copied to clipboard
ORA-00942 occurs when using Oracle DB and Flyway
"ORA-00942: table or view does not exist" occurs when calling setStartPointNow(). Because the table name created by Flyway is lowercase, you must enclose the table name in double quotes when executing the SELECT statement.
OracleDataSource ods = new OracleDataSource();
ods.setURL(...);
ods.setUser(...);
ods.setPassword(...);
Changes changes = new Changes(ods);
changes.setStartPointNow();
the following is output to the failure trace.
Caused by: java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist.
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:509)
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:461)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1104)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:550)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:268)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:655)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:229)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:41)
at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:765)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:983)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1362)
at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:369)
at org.assertj.db.type.Table.loadImpl(Table.java:858)
at org.assertj.db.type.AbstractDbData.load(AbstractDbData.java:131)
... 80 more
Caused by: Error : 942, Position : 14, Sql = SELECT * FROM flyway_schema_history, OriginalSql = SELECT * FROM flyway_schema_history, Error Msg = ORA-00942: 表またはビューが存在しません。
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:513)
... 94 more
Hi @jitsuishi thanks for this feedback, I will investigate on how we can fix this issue. Thanks.