2016-03-14 4 views
2

У меня есть небольшое приложение java, и я пытаюсь выполнить insert-select (insert into table1 (column) select column from table2) с помощью драйвера oracle jdbc, этот sql-компонент вставляет около 230k строк, в SQL Developer он запускает через 30 минут, но в java, когда я вызвал ExecuteUpdate(), метод застревает и ничего не возвращает, более 3 часов исполнения, и метод остается застрявшим.OJDBC ExecuteUpdate() ничего не возвращает

Я попытался использовать execute(), но результат был тот же. Я пробовал драйверы ojdbc5, ojdbc6 и ojdbc7, без успеха.

Я нашел этот вопрос: Java - JDBC executeUpdate() not working, но я не могу изменить его в weblogic.

Кто-нибудь может мне помочь?

EDIT: Команда SQL успешно выполнена, когда я запрашиваю это у разработчика sql, я вижу правильный результат, но в java-приложении метод remes застрял.

+1

SQL Developer написан на Java и с использованием драйвера JDBC Oracle, поэтому Java скорее всего не является причиной вашей проблемы. Используйте инструмент «Мониторинг сеансов» в SQL Developer, чтобы проверить, что происходит за кулисами. Также проверьте, запущена ли ваша файловая система из-за архивных журналов. –

ответ

0

Будет легче понять проблему, если я смогу увидеть ваш код. Прежде всего, функция executeUpdate("some query") не имеет возвращаемого значения. Если я помню, вы можете назначить int result = statement.executeUpdate("query"). Если вы хотите вернуть значения, вы можете использовать ResultSet rs = statement.executeQuery("some query") executeUpdate() всегда stucks при вставке большого количества строк, но 3 часа - это не нормально. Пожалуйста, покажите свой код :)

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