|
|
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Пытаюсь с помощью jdbc запустить такой запрос Код: plaintext 1. 2. 3. 4. 5. Выдает: java.sql.SQLException: ORA-00911: неверный символ Я так понял, что Oracle в данном случае ругается на ;. Протестировал на таком запросе Код: plaintext Подскажите, можно ли как нибудь решить данную проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2005, 12:26 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
Anatoliy > Подскажите, можно ли как нибудь решить данную проблему. не ставить ";"? ----------------------------------- The Bat + My Gate Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2005, 12:35 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
У тебя три последовательных запроса, а не один. Выполни каждый из них самостоятельно. /topic/144325 Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2005, 12:38 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
deadyне ставить ";"? Но мне нужно выплнять сразу несколько операций, (напр создание нескольких пользователей) в одном запросе. Как быть в таком случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2005, 12:39 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
авторУ тебя три последовательных запроса, а не один. Выполни каждый из них самостоятельно. Мне нужноподгружать sql файл, который замечательно выполняется в SQL plus work sheet. Неужели jdbc драйвер для Oracle на поддерживает сразу несколько операйий в одном запросе!!!??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2005, 12:42 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
SQL*Plus это SQL*Plus, который, кроме выполнения скриптов, имеет массу других возможностей. В спецификации JDBC-интерфейсов (просто интерфейсов, а не именно оракловых), если не ошибаюсь, нет метода, позволяющего выполнить скрипт "одним" куском, разве что надо самостоятельно раскладывать его на отдельные команды. Я бы, кстати, тоже бы очень обрадовался, если бы нашель какий-нибудь (м.б. сторонний) инструмент выполнения скриптов через JDBC. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2005, 13:22 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
можно извратиться и выполнить через ант :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2005, 13:50 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
хмм... кстати как он это делает? ведь использует только jdbc, но позволяет выполнять скрипты! можно покопаться в исходниках при желании :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2005, 13:54 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
Понятно. Просто я работал с Access и MSSSQL там это дело нормально прокатывало. Придется разбирать на команды раз по-другому нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2005, 13:57 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
Если есть уверенность, что на машине обязательно есть оракловый клиент, то можно, конечно, вызвать SQL*Plus через Runtime.getRuntime().exec() и подсунуть ему скрипт. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2005, 14:10 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
А кто мешает выполнить несколько запросов разными стейтментами, но в транзакции? примерно так: try{ conn.setAutoCommit(false); conn.createStatement(...); ....... conn.commit(); }catch(Exception e){conn.rollback();} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2005, 20:51 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
а что батч из 3 команд нельзя выполнить в одной транзакции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 06:50 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
cnn.setAutoCommit(false); Statement s = cnn.createStatement(); s.addBatch(""); ..... s.addBatch(""); s.executeBatch(); cnn.commit(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 07:00 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
IMHO использовать транзакции для запросов типа: DROP USER CREATE USER GRANT бесполезно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 09:34 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
zalexakaIMHO использовать транзакции для запросов типа: DROP USER CREATE USER GRANT бесполезно не? это не imho, это rtfm :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 10:26 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
Liner wrote: > а что батч из 3 команд нельзя выполнить в одной транзакции? Осталось вручную разбить единый скрипт на 3 команды:) Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 12:28 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
"begin bla-bla; ....; bla-bla; end;" не спасет ? (про единую транзакцию для нескольких ddl я не говорил ... ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 16:16 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
если точнее, то думаю, можно выполнить такой кусок одним вызовом Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 16:47 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
[offtop] Igor-65 Код: plaintext 1. 2. 3. кто мало знаком с java: не знапоминайте этот фрагмент кода :) Запомните этот: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 17:10 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
произведение не расчленённого ут[offtop] кто мало знаком с java: не знапоминайте этот фрагмент кода :) Запомните этот: Я когда только начинал писать на Java, сделал сервлет, который выводил дикий отчет, путем того, что формировал выходный html в виде вот такого вот сложения строк. Отчет формировался порядка 5 минут. Потом переделал, убрал этот изврат, получилось несколько секунд :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 17:15 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
произведение > Запомните этот: > String sql ="begin\n" +"exec ... " +"exec ... " + ... > Тема==Ответить String sql = new StringBuffer("begin").append("exec...").append("exec...").append("end").toString(); тогда уж так ----------------------------------- The Bat + My Gate Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 17:18 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
ИМХО проблема не в том, чтобы вообще как-нибудь выполнить SQL-команды через JDBC, а в том, чтобы выполнить уже готовый сторонний скрипт, который является допустимым для того же SQL*Plus'а. К примеру: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 17:37 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
Deady произведение > Запомните этот: > String sql ="begin\n" +"exec ... " +"exec ... " + ... > Тема==Ответить String sql = new StringBuffer("begin").append("exec...").append("exec...").append("end").toString(); тогда уж так ----------------------------------- The Bat + My Gate Posted via ActualForum NNTP Server 1.3 Не хочется опять приводить в пример байт код, скажу просто:"тогда уж так" - тоже не следует. Это ухудшает читаемость. Данное преобразование проделает комилятор. Причём в версии 1.5 он будет использовать более быстрый класс StringBuilder, вместо стрингбуфера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 19:03 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
Denis PopovИМХО проблема не в том, чтобы вообще как-нибудь выполнить SQL-команды через JDBC, а в том, чтобы выполнить уже готовый сторонний скрипт, который является допустимым для того же SQL*Plus'а А откуда вы знаете что SQL*Plus не разбирает команды? Denis PopovОсталось вручную разбить единый скрипт на 3 команды:) ИМХО Если их разобрать и засунуть в батч они уйдут на сервер и выполнятся одним пакетом что будет быстро, а в скрипте строки для выполнения символами перевода строки не заканчиваются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2005, 06:34 |
|
||
|
ORA-00911: неверный символ
|
|||
|---|---|---|---|
|
#18+
ИМХО! Объект Statement независит от драйвера базы данных, а символы раделители для SQL команд различные в разных диалектах, поэтому этот символ разделения приписывает сам драйвер уже, когда формирует пакет из команд при вызове executeBatch, и как бы пакет этот идет с признаком что команд несколько и что их разбирать нужно, и что на каждую команду свой код возврата а при execute, executeUpdate, executeQuery идет как одна команда, и соответственно запрос выполняется как одна команда, ее не нужно разбирать и у нее один код возврата и такое не только в jdbc, я например в TOAD не могу выполнить несколько команд разделенных ; - то же самое пишет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2005, 07:15 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33264129&tid=2151488]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
185ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 533ms |

| 0 / 0 |
