|
|
|
как выполнить SQL скрипт?
|
|||
|---|---|---|---|
|
#18+
Надо выполнить SQL скрипт используя JDBC. Не хотелось бы самому анализировать файл и выполнять по одной SQL команде. Можно ли сделать это как-то проще (из явы естественно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2005, 18:08 |
|
||
|
как выполнить SQL скрипт?
|
|||
|---|---|---|---|
|
#18+
Например, можно прочитать файл построчно, и на каждой строке делать addBatch(sql) у своего Statement'a, а потом выполнить executeBatch() у того же Statement'а. А анализировать - зачем? Или заранее неизвестно, что скрипт рабочий? --С уважением, ponomarevvb-- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2005, 18:56 |
|
||
|
как выполнить SQL скрипт?
|
|||
|---|---|---|---|
|
#18+
Не стала открывать новую тему, может в этой помогут. Мне также необходимо выполнить большой и не понятный (сложный) sql скрипт, который лежит в папке src\main\resources Попробовала через iBatis ScriptRunner . Не получилось. Проблемы, судя по всему связаны, с разделителями. Теперь пробую через Runtime.getRuntime().exec выполнить скрипт из файла. Вот код: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. В результате в консоль выводится: Код: plaintext Вероятно, я косячу с набором параметров для массива: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 10:41 |
|
||
|
как выполнить SQL скрипт?
|
|||
|---|---|---|---|
|
#18+
May12, ScriptRunner разделяет файл по точке с запятой и пытается выполнить каждый отдельный блок как запрос. С этим есть свои косяки. Но, в целом, кое-как работает. По поводу запуска команд - Не используйте Runtime.exec, используйте ProcessBuilder. - Делайте redirect для Error Stream. Если процесс туда пишет, то вашей вычитки недостаточно. Таки поток заблокируется. - Используйте ProcessBuilder.Redirect чтобы не мучатся с собственной вычиткой. - Используйте AutoClosable\try with resource, если планируете закрывать потоки ввода\вывода Не столько важен ваш код, как детальное описание вашего "не получилось". Как именно не работает? Зависает ли? Пишет ли чего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 11:01 |
|
||
|
как выполнить SQL скрипт?
|
|||
|---|---|---|---|
|
#18+
авторScriptRunner разделяет файл по точке с запятой Blazkowicz, в файле sql скрипта нет ни одной точки с запятой. Еще немного поковырялась с iBatis, но тщетно. автор как детальное описание вашего "не получилось" Просто выводит в консоль Код: plaintext P.s Добавила в вызов cmd "-P", "****",. Ну это конечно не помогло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 11:29 |
|
||
|
как выполнить SQL скрипт?
|
|||
|---|---|---|---|
|
#18+
May12Blazkowicz, в файле sql скрипта нет ни одной точки с запятой. Тогда если там больше одного запроса либо не SQL инструкции типа GO, то работать не будет. May12Просто выводит в консоль Код: plaintext P.s Добавила в вызов cmd "-P", "****",. Ну это конечно не помогло Надо вычитывать либо редиректить Error Output. Вдруг там чего написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 11:32 |
|
||
|
как выполнить SQL скрипт?
|
|||
|---|---|---|---|
|
#18+
авторинструкции типа GO ага... есть. авторНадо вычитывать либо редиректить Error Output. А как? =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 11:36 |
|
||
|
как выполнить SQL скрипт?
|
|||
|---|---|---|---|
|
#18+
автортам больше одного запроса либо не SQL инструкции типа GO, Там такая простыня (большая процедура). Go и SET поудаляла, но все равно не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 11:40 |
|
||
|
как выполнить SQL скрипт?
|
|||
|---|---|---|---|
|
#18+
May12авторинструкции типа GO ага... есть. Ну, тогда про JBDC/ScriptRunner можно забыть. May12авторНадо вычитывать либо редиректить Error Output. А как? =) Так же как Output Stream, только в отдельном Thread. Но при наличии актуальной версии Java и ProcessBuilder писать свою вычитку это глупость. Перепишите на ProcessBuilder http://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html Потом установите свойство redirectErrorStream ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 11:47 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38855009&tid=2125943]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 313ms |

| 0 / 0 |
