Une idée sur H2 (Oracle MODE) "Erreur de syntaxe: SELECT NEXTVAL FROM [*] DUAL"?
J'ai l'erreur suivante à l'aide de H2 (v1.3.154) avec Oracle mode :
<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.h2.Driver" />
<property name="url" value="jdbc:h2:mem:testdb;MODE=Oracle" />
<property name="username" value="sa" />
<property name="password" value="" />
</bean>
et Oracle en dialecte hibernate v3.5.6 :
hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
L'erreur :
Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "SELECT
SQ_PERSON_ID.NEXTVAL FROM[*] DUAL "; expected "identifier"; SQL statement:
select SQ_PERSON_ID.nextval from dual [42001-154]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:327)
at org.h2.message.DbException.get(DbException.java:167)
at org.h2.message.DbException.getSyntaxError(DbException.java:192)
at org.h2.command.Parser.readColumnIdentifier(Parser.java:2752)
at org.h2.command.Parser.readTermObjectDot(Parser.java:2311)
at org.h2.command.Parser.readTerm(Parser.java:2428)
at org.h2.command.Parser.readFactor(Parser.java:2025)
at org.h2.command.Parser.readSum(Parser.java:2012)
at org.h2.command.Parser.readConcat(Parser.java:1985)
at org.h2.command.Parser.readCondition(Parser.java:1850)
at org.h2.command.Parser.readAnd(Parser.java:1831)
at org.h2.command.Parser.readExpression(Parser.java:1823)
at org.h2.command.Parser.parseSelectSimpleSelectPart(Parser.java:1736)
at org.h2.command.Parser.parseSelectSimple(Parser.java:1768)
at org.h2.command.Parser.parseSelectSub(Parser.java:1663)
at org.h2.command.Parser.parseSelectUnion(Parser.java:1508)
at org.h2.command.Parser.parseSelect(Parser.java:1496)
at org.h2.command.Parser.parsePrepared(Parser.java:401)
at org.h2.command.Parser.parse(Parser.java:275)
at org.h2.command.Parser.parse(Parser.java:247)
at org.h2.command.Parser.prepare(Parser.java:201)
at org.h2.command.Parser.prepareCommand(Parser.java:214)
at org.h2.engine.Session.prepareLocal(Session.java:426)
at org.h2.engine.Session.prepareCommand(Session.java:374)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1100)
at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:71)
at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:243)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534)
at org.hibernate.jdbc.AbstractBatcher.prepareSelectStatement(AbstractBatcher.java:145)
at org.hibernate.id.enhanced.SequenceStructure$1.getNextValue(SequenceStructure.java:106)
... 81 more
Aucune idée de ce qui se passe, une miss dans ma config ? J'ai trouvé ce post et essayer le patch, il ne résout pas l'erreur. Merci pour votre aide !
source d'informationauteur Jerome VDL
Vous devez vous connecter pour publier un commentaire.
Veuillez vous assurer que la séquence est créée. S'il est créé, puis il travaille pour moi:
Si elle n'est pas créée, le même message d'erreur est levée comme vous l'avez obtenu.
Vérifiez si vous utilisez le même schéma en vertu de laquelle la séquence est créée. Si non, insérer un schéma préfixe avant le nom de la séquence, telle est MYUSER.MY_SEQ.
En dehors d'un possible problème Hibernate, est-ce que votre
SA
utilisateur d'autorisation select à l'encontre de la séquence, qui semble être dans un schéma différent? (Voir exemple dans la documentation).