Exécution du fichier de script dans la base de données h2

tout d'abord, je voudrais dire que je suis nouveau à la base de données h2. J'ai besoin d'exécuter un fichier de script sql dans la base de données h2. J'ai un fichier de script de test.sql et moi voulons exécuter ceci dans la base de données h2. Est-il possible?

43
demandé sur Thomas Mueller 2012-05-20 21:53:57

4 réponses

Vous pouvez utiliser le runscript SQL statement:

RUNSCRIPT FROM 'test.sql'

ou vous pouvez utiliser le RunScript autonome / outil de ligne de commande:

java -cp h2*.jar org.h2.tools.RunScript -url jdbc:h2:~/test -script test.sql

vous pouvez également utiliser L'outil RunScript dans une application:

RunScript.execute(conn, new FileReader("test.sql"));
75
répondu Thomas Mueller 2012-05-21 04:55:21

Si vous utilisez printemps-boot et printemps-test avec H2, il recherchera automatiquement schema.sql et data.sql dans votre chemin de classe et de tenter de l'exécuter. Donc, si vous les mettez dans src/test/resources ils doivent être ramassés et d'exécuter automatiquement

En outre, vous pouvez spécifier les fichiers de données que vous voulez exécuter avec les propriétés. Par exemple, ajouter une propriété à votreapplication.properties

spring.datasource.data=classpath:users.sql, classpath:books.sql, classpath:reviews.sql

va configurer spring pour exécuter ces trois fichiers sql au lieu d'exécuter data.sql

4
répondu robjwilkins 2018-03-12 11:48:09

Sur OSX (cela ne devrait pas vraiment) avec v. 1.4.192 avec les commandes suivantes, peu importe ce que j'ai fait, je ne pouvais pas voir tous les résultats:

java -cp h2*.jar org.h2.tools.RunScript -url "jdbc:h2:file:~/testdb" -user someusername -password somepass -script select.sql

sélectionner.sql n'avait tout simplement:

select * from PUBLIC.MYTABLE;

j'ai dû ajouter le -showResults avant que la sortie ne commence à apparaître. Voici la commande:

java -cp /Users/az/.m2/repository/com/h2database/h2/1.4.192/h2-1.4.192.jar org.h2.tools.RunScript -url "jdbc:h2:file:~/testdb" -user someusername -password somepass -script select.sql -showResults

si vous n'avez pas le bocal nécessaire, téléchargez à partir de ici (Cliquez sur le jar liens à côté de chaque version). Voici quelques liens directs vers les pots:

1.4.193(Mise À Jour: 31-Oct-2016)



1.4.192(Mise À Jour Le 26-Mai-2016)



1.4.191(mis à jour 21-Jan-2016)



1.4.190(Mis À Jour Le 11-Oct-2016)



2
répondu Ashutosh Jindal 2016-11-21 18:42:21

Pour moi, le système a répondu:

n'ai pas trouvé org.h2.outils.Pilote RunScript

la solution était:

java -classpath <path_to_your_h2-*.jar> org.h2.tools.RunScript \
-url jdbc:h2:tcp://localhost/~/test -script test.sql

Voir: http://www.h2database.com/html/tutorial.html#using_server

1
répondu aspadacio 2017-09-23 14:24:05