|
|
|
Oracle JDBC - выполнить последовательность команд
|
|||
|---|---|---|---|
|
#18+
Тема отчасти перекликается с sqlplus и java , хотел спросить о следующем: существует ли какой-нибудь вариант Statement'а, позволяющий выполнить скрипт - поледовательность команд - за один вызов? Что-то вроде: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2004, 12:43 |
|
||
|
Oracle JDBC - выполнить последовательность команд
|
|||
|---|---|---|---|
|
#18+
Denis PopovТема отчасти перекликается с sqlplus и java , хотел спросить о следующем: существует ли какой-нибудь вариант Statement'а, позволяющий выполнить скрипт - поледовательность команд - за один вызов? Что-то вроде: Код: plaintext 1. 2. 3. 4. 5. А какой в этом заложен смысл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2004, 12:53 |
|
||
|
Oracle JDBC - выполнить последовательность команд
|
|||
|---|---|---|---|
|
#18+
Я конечно не спец по Java и JDBS (только начал разбираться), но может запихнуть это в процедуру БД и вызывать уже процедуру или как в Oracle declare begin (ваши команды) end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2004, 13:09 |
|
||
|
Oracle JDBC - выполнить последовательность команд
|
|||
|---|---|---|---|
|
#18+
Создаю объекты БД через JDBC. Пробегаю по набору файлов, представляющие собой sql-команды, и последовательно их выполняю. Так для каждой команды надо создавать свой файл, к примеру, для комментариев к таблице и ее полям: Код: plaintext 1. 2. 3. 4. 5. 2S.A.T.: это хорошо для DML, а для DDL придется использовать Native SQL (вроде execute immediate), чем бы не хотелось злоупотреблять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2004, 13:37 |
|
||
|
Oracle JDBC - выполнить последовательность команд
|
|||
|---|---|---|---|
|
#18+
Maybe Statement.addBatch()? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2004, 13:45 |
|
||
|
Oracle JDBC - выполнить последовательность команд
|
|||
|---|---|---|---|
|
#18+
Действительно работает: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2004, 14:10 |
|
||
|
Oracle JDBC - выполнить последовательность команд
|
|||
|---|---|---|---|
|
#18+
Но тогда сперва надо разобрать исходный скрипт на команды. В принципе, если найти или сделать такой парсер, то можно и execute() обойтись:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2004, 15:14 |
|
||
|
Oracle JDBC - выполнить последовательность команд
|
|||
|---|---|---|---|
|
#18+
Denis Popov Но тогда сперва надо разобрать исходный скрипт на команды А нельзя для этого использовать какую-нибудь последовательность символов, по типу GO в MS Query Analyser? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2004, 15:22 |
|
||
|
Oracle JDBC - выполнить последовательность команд
|
|||
|---|---|---|---|
|
#18+
В принципе можно. Можно еще в качестве разделителя выбрать нечто вроде REM GO , тогда скрипт по-прежему можно будет выполнять в SQL*Plus, если потребуется. Т.е. это путь к написанию собственного парсера, может он и является единственно возможным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2004, 15:34 |
|
||
|
Oracle JDBC - выполнить последовательность команд
|
|||
|---|---|---|---|
|
#18+
Denis PopovНо тогда сперва надо разобрать исходный скрипт на команды. В принципе, если найти или сделать такой парсер, то можно и execute() обойтись:) Если команды разделены ";" то это не проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2004, 15:39 |
|
||
|
Oracle JDBC - выполнить последовательность команд
|
|||
|---|---|---|---|
|
#18+
В DML точка с запятой не обязательно означают конец комадны. К примеру, если она встречается где-то между begin и end. Да в DDL тоже, хотя я далек от соблазна подобным образом называть объекты:) Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2004, 16:15 |
|
||
|
Oracle JDBC - выполнить последовательность команд
|
|||
|---|---|---|---|
|
#18+
Denis Popov А кто формирует список комманд? Т.е. откуда он береться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2004, 16:28 |
|
||
|
Oracle JDBC - выполнить последовательность команд
|
|||
|---|---|---|---|
|
#18+
Я сам и формирую. Написаны sql-скрипты для вытаскивания метаданных схемы, в результате получаются скрипты на создание всех требуемых объектов - таблиц, процедур и т.д. До некоторых пор получившиеся скрипты выполнялись через SQL*Plus, поэтому я смело мог в одном файле объединять несколько команд. Сейчас потребовалось тоже самое делать через JDBC THIN. Пришлось все делить на атомарные команды. Это я к тому, что вставить собственный разделитель в процессе формирования файлов непроблематично, если окажется, что это самый разумный выход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2004, 16:38 |
|
||
|
Oracle JDBC - выполнить последовательность команд
|
|||
|---|---|---|---|
|
#18+
вот-вот! Не знаю как в Oracle, но для MS SQL это стандартное решение отделения "batch'ей" - так они там называются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2004, 16:46 |
|
||
|
Oracle JDBC - выполнить последовательность команд
|
|||
|---|---|---|---|
|
#18+
Denis PopovЯ сам и формирую. Написаны sql-скрипты для вытаскивания метаданных схемы, в результате получаются скрипты на создание всех требуемых объектов - таблиц, процедур и т.д. До некоторых пор получившиеся скрипты выполнялись через SQL*Plus, поэтому я смело мог в одном файле объединять несколько команд. Сейчас потребовалось тоже самое делать через JDBC THIN. Пришлось все делить на атомарные команды. Это я к тому, что вставить собственный разделитель в процессе формирования файлов непроблематично, если окажется, что это самый разумный выход.Тогда уж скидывай в XML-формате... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2004, 19:07 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=32818494&tid=2153289]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 359ms |

| 0 / 0 |
