Comment utiliser HSQLDB en mode de syntaxe de requête Oracle?
Je suis en train d'utiliser HSQLDB comme une base de données incorporée dans un printemps de l'application (pour les tests). Comme la cible de production de base de données Oracle, je voudrais utiliser HSQLDBs Oracle syntaxe de la fonction de mode.
Au Printemps config j'utilise
<jdbc:embedded-database type="HSQL" id="dataSource"> </jdbc:embedded-database> <jdbc:initialize-database data-source="dataSource" enabled="true"> <jdbc:script location="classpath:schema.sql"/> </jdbc:initialize-database>
Et dans le schéma.sql en haut, j'ai écrit:
DÉFINIR LA BASE DE DONNÉES SQL SYNTAXE ORA VRAI;
Cependant, lors de l'exécution de mon test, j'obtiens l'erreur suivante:
java.sql.SQLException: Unexpected token: BASE de données dans l'énoncé [SET de BASE de données SQL SYNTAXE ORA TRUE]
Est-ce une erreur de syntaxe ou d'une des autorisations d'erreur ou quelque chose de totalement différent?
Merci aussi pour tous les pointeurs qui peuvent mener à la réponse.
Étant donné que HSQL est le Printemps par défaut pour jdbc:intégré-base de données et compte tenu de l'objectif est Oracle, ce scénario devrait en fait être très commun. Cependant, je n'ai rien trouvé sur le Web même de toucher à la question.
Mise à jour:
La question ci-dessus est résolu merci de répondre #1.
Cependant, maintenant, je reçois une autre exception:
org.springframework.dao.DataAccessResourceFailureException: impossible de remplir la base de donnée; nested exception java.sql.SQLException: java.lang.RuntimeException: non pris en charge le fonctionnement interne: StatementCommand non pris en charge le fonctionnement interne: StatementCommand
Aucune idée de ce que cela provoque?
source d'informationauteur Jan Algermissen
Vous devez vous connecter pour publier un commentaire.
Cette option a été introduite avec HSQLDB 2.0.
Êtes-vous sûr d'utiliser la bonne version?
Peut-être que vous avez 1.8 toujours dans le classpath quelque part.
Mais que vous n'obtiendrez pas loin en termes de tests de toute façon, parce que cela ne tourne que sur certains de la syntaxe basic "remplacement", il n'y a pas de réel changement de comportement en cause ici (et je ne parle même pas plus avancé Oracle des fonctions comme des fonctions analytiques, vous vous CONNECTEZ PAR ou quelque chose de similaire).
Il est très rarement une bonne idée à tester votre application avec un SGBD qui ne seront pas utilisés dans la production. Il n'est tout simplement pas un test valide.
Même si elle ne modifier certains syntaxe de base ici est un exemple de comment vous pouvez le faire:
La
sql.syntax_ora=true
URL propriété permet la compatibilité de syntaxe, y compris le type de NUMÉRO et de la DOUBLE table. D'autres propriétés peuvent être utilisés pour plus d'comportement de compatibilité. Ceux-ci sont documentés dans le HSQLDB Guide:http://hsqldb.org/doc/2.0/guide/compatibility-chapt.html#coc_compatibility_oracle