2012-05-20 4 views
38

Прежде всего, я хотел бы сказать, что я новичок в базе данных h2. Мне нужно выполнить файл сценария sql в базе данных h2. У меня есть файл сценария test.sql, и я хочу выполнить его в базе данных h2. Является ли это возможным?Выполнение файла сценария в базе данных h2

ответ

67

Вы можете использовать RUNSCRIPT SQL statement:

RUNSCRIPT FROM 'test.sql' 

или вы можете использовать RunScript standalone/command line tool:

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

Вы также можете использовать инструмент RunScript внутри приложения:

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

Есть ли уловка для использования вашего первого примера? У меня есть 'bootstrap.sql', который содержит ничего, кроме' RUNSCRIPT FROM 'test.sql'', а мой test.sql является братом для файла начальной загрузки. Если я запускаю 'jdbc: h2: mem: etsnom; INIT = RUNSCRIPT FROM 'C:/workspace/bootstrap.sql'', я получаю' FileNotFoundException' – Snekse

+0

Если мы используем второй метод Томаса для создания базы данных, тогда имя пользователя и пароль по умолчанию будут установлены, т.е. "" [пустая строка]. это то, что реализовано в классе «RunScript». Однако всегда очень важно установить имя пользователя и пароль для доступа к базе данных и сделать это в случае базы данных H2, мы можем выполнить команду ниже: java -cp h2 *.jar org.h2.tools.RunScript -url jdbc: h2: ~/test -user sa -password sa -script test.sql –

1

На OSX (это не должно действительно имеет значение) с 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 

Если у вас нет необходимого банку, скачать с here (Нажмите на jar ссылок рядом с каждой версией). Некоторые прямые ссылки на банки следующим образом:

1.4.193(Обновлено 31-Октябрь-2016)

1.4.192(Updated 26-May-2016)

1.4.191(Обновлено 21-январе- 2016)

1.4.190(Обновлено 11-Октябрь-2016)

Смежные вопросы