Может кто-нибудь сказать мне, что не так с этим запросом - PullRequest
1 голос
/ 14 июня 2011
UPDATE trans_actual SET comment_id = ? 
WHERE id = (SELECT MAX(id) 
            FROM trans_actual 
            WHERE plan_id = ?) 

org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; плохой SQL грамматика SQLException: ORA-02049: тайм-аут: распределенная транзакция в ожидании блокировки

Хорошо работает в SQLDeveleloper.

1 Ответ

2 голосов
/ 14 июня 2011

Запрос выглядит нормально. Это похоже на проблему блокировки транзакции. В такой проблеме только вы можете определить, где находится блокировка, потому что вы не можете опубликовать весь свой код здесь.

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

Вы искали ORA-02049 ? Это должно дать вам несколько советов.

...