Я использую HSQLDB в качестве базы данных в своих тестах автоматических компонентов. Он издевается над производственной базой данных Oracle.Последовательности уровней схемы в HSQL
В моем SQL-коде у меня есть последовательность, определенная в пределах области схемы, например.
CREATE SEQUENCE THE_SCHEMA.THE_SEQUENCE ... ;
Тогда, когда я беру NEXTVAL из этой схемы:
Connection con = ...
String query = "SELECT THE_SCHEMA.THE_SEQUENCE.nextval as MyNextVal from DUAL;"
PreparedStatement ps = con.prepareStatement(query);
ResultSet resultSet = ps.executeQuery();
Я получаю сообщение об ошибке, как показано ниже на con.prepareStatement (запрос) вызова.
Приведенный выше код работает хорошо, когда я определить последовательность в глобальном масштабе, как показано ниже
CREATE SEQUENCE THE_SEQUENCE ... ;
и изменить
String query = "SELECT THE_SEQUENCE.nextval as MyNextVal from DUAL;"
Мой вопрос делает последовательности поддержки HSQL уровня схемы?
Я что-то упустил?
(я "режим совместимости с Oracle" включен с SET DATABASE SQL СИНТАКСИС ORA TRUE;)
Stack след:
Caused by: java.lang.NullPointerException
at org.hsqldb.RangeVariable.resolvesSchemaName(Unknown Source)
at org.hsqldb.RangeVariable.resolvesSchemaAndTableName(Unknown Source)
at org.hsqldb.RangeVariable.findColumn(Unknown Source)
at org.hsqldb.ExpressionColumn.resolveColumnReference(Unknown Source)
at org.hsqldb.ExpressionColumn.resolveColumnReferences(Unknown Source)
at org.hsqldb.QuerySpecification.resolveColumnReferencesAndAllocate(Unknown Source)
at org.hsqldb.QuerySpecification.resolveColumnReferences(Unknown Source)
at org.hsqldb.QuerySpecification.resolveReferences(Unknown Source)
at org.hsqldb.QueryExpression.resolve(Unknown Source)
at org.hsqldb.ParserDQL.compileCursorSpecification(Unknown Source)
at org.hsqldb.ParserCommand.compilePart(Unknown Source)
at org.hsqldb.ParserCommand.compileStatement(Unknown Source)
at org.hsqldb.Session.compileStatement(Unknown Source)
at org.hsqldb.StatementManager.compile(Unknown Source)
... 26 more
java.sql.SQLException: java.lang.NullPointerException java.lang.NullPointerException
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCPreparedStatement.<init>(Unknown Source)
at org.hsqldb.jdbc.JDBCConnection.prepareStatement(Unknown Source)
Подробности о исключением того, что это время, брошенные из con.prepareStatement (запрос) :
Exception type java.sql.SQLException
cause = org.hsqldb.HsqlException: java.lang.NullPointerException
detailMessage = java.lang.NullPointerException java.lang.NullPointerException
next = null
SQLState = S1000
stackTrace = null
vendorCode = -458
Что такое сообщение об ошибке? – fredt
Только что обновил мой вопрос с помощью трассировки стека. – Michal