ORA-01086: точка сохранения 'L_SAVEPOINT' никогда не устанавливалась в этом сеансе или недействительна

В моем случае точка сохранения была установлена ​​в Java, и я пытаюсь выполнить откат в процедуре plsql, которая была вызвана в Java с помощью вызываемого оператора.

Между ними нет коммитов или откатов, но я все еще вижу ошибку:

ORA-01086: точка сохранения "L_SAVEPOINT" никогда не устанавливалась в этом сеансе или недействительна

Это потому, что точка сохранения установлена ​​​​в Java, и я пытаюсь выполнить откат в plsql? Может кто-нибудь, пожалуйста, помогите мне с этим?


person Mounika    schedule 22.03.2019    source источник
comment
Как установить точку сохранения из java? Покажи нам свой код.   -  person Pavel Smirnov    schedule 22.03.2019
comment
Вы уверены, что все это происходит в одном и том же сеансе? и между ними не было автоматическойфиксации (поскольку точка сохранения и вызов PL/SQL, предположительно, являются двумя отдельными вызовами к БД)?   -  person Alex Poole    schedule 22.03.2019
comment
Похоже, процедура java и plsql считается двумя разными транзакциями. Проблема была исправлена ​​для меня, когда я установил точку сохранения внутри процедуры PL/SQL и откат также внутри процедуры.   -  person Mounika    schedule 22.03.2019
comment
Рад, что это сработало для вас. Вы можете ответить на свой вопрос, используя информацию в своем комментарии, а затем принять свой ответ. Это поможет другим найти хорошее решение. Спасибо!   -  person Mark Stewart    schedule 03.08.2021


Ответы (2)


Просто проливая свет на это, мой коллега столкнулся с аналогичной проблемой, когда он контролировал транзакцию, но у меня была фиксация внутри хранимой процедуры. Удалите Commit/Rollback из SP, и все будет готово, если вы хотите контролировать транзакцию из Java.

person Venkat    schedule 22.03.2019

Процедура Java и plsql считаются двумя разными транзакциями. Проблема была исправлена ​​для меня, когда я установил точку сохранения внутри процедуры PL/SQL и откат также внутри процедуры.

person Mounika    schedule 04.08.2021