質問

まず私はh2データベースに新しいことを言いたいのです。H2データベースでSQLスクリプトファイルを実行する必要があります。スクリプトファイルtest.sqlがあり、これをH2データベースで実行します。それは可能ですか?

役に立ちましたか?

解決

RunScript SQL文を使用できます。

RUNSCRIPT FROM 'test.sql'
.

または RunScriptスタンドアロン/コマンドラインツール

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

アプリケーション内でRunScriptツールを使用することもできます。

RunScript.execute(conn, new FileReader("test.sql"));
.

他のヒント

h2でspring-bootとspring-testを使用している場合は、クラスパスのschema.sqldata.sqlを自動的に検索し、それらを実行しようとします。それで、あなたがそれらをsrc/test/resourcesに入れるならば、それらは拾われて自動的に実行されるべきです

さらに、プロパティで実行するデータファイルを指定できます。たとえば、のようなyourapplication.propertiesにプロパティを追加する

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

は、data.sql を実行する代わりにこれら3つのSQLファイルを実行するようにSpringを設定します。

(これは本当に重要ではないはずです)v。1.4.192次のコマンドで、私が何を見たことができなかった:

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

ここでselect.sqlは単に:

select * from PUBLIC.MYTABLE;
.

出力が現れる前に-showResultsを追加しなければなりませんでした。これが完全なコマンドです:

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
.

必要な瓶を持っていない場合は、 ここ (各バージョンの隣のjarリンクをクリックしてください)。 JARへの直接のリンクは次のとおりです。

< EM> 1.4.193 (2016年10月31日)
1.4 .192 (2016年5月26日)
> 1.4 .191 (2016年1月21日)
1.4 .190 (2016年10月11日更新)

For me the system responded with:

didn't find org.h2.tools.RunScript driver

The solution was:

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top