Хранимая процедура PLSQL работает иначе, когда вызывается из PLSQL Developer или Java-приложения - PullRequest
0 голосов
/ 25 октября 2018

В базе данных Oracle 11g (11.2.0.1.0, 64bit) у меня есть porcedure (часть пакета), которая использует FORALL для обновления таблицы.FORALL находится в динамической части SQL, выполняемой с помощью EXECUTE IMMEDIATE.

Когда я вызываю процедуру из PLSQL Developer, результат в порядке, таблица обновляется, как и ожидалось.

Когда процедуравызывается приложением Java (используя JDBCTemplate.execute (...), тонкий клиент JDBC), а затем обновление FORALL происходит случайно.Не все записи обновляются в таблице, поэтому должна обновляться только часть из них.Не обновленный набор записей меняется случайным образом от пробного к пробному.

Код довольно сложный, чтобы процитировать его здесь.Во-первых, я хотел бы знать, есть ли какая-то особая вещь, условие для проверки в случае вызова Java.В любом случае, какую технику и как правильно использовать при вызове хранимой процедуры Oracle из Java.Часть Java не разработана мной.Я подозреваю, что есть некоторая проблема с этим кодом.Иначе может быть, что часть PLSQL прекрасно работает в автономном режиме, но не работает с приложением Java.

Спасибо за любые комментарии и советы.

...