Yakov Hrebtov wrote:

При выполнении update определенной записи таблицы определенными значениями возникает

Statement failed, SQLCODE = -508
no current record for fetch operation

Больше ничего :-( Ни стека вызовов ни какой либо другой уточняющей информации.

На таблицу в виде триггеров навешана довольно сложная логика.
Для локализации места возникновения ошибки поочередно отключал триггера и нашел проблемный, при отключении которого update проходит.

На 99% этот триггер удаляет запись, которая апдейтится.

Для того, чтобы попытаться локализовать место возникновения ошибки внутри триггера, решил использовать вызов exception, постепенно сдвигая этот вызов от конца триггера к началу, до тех пор, пока не возникнет вызываемое исключение, а не 'no current record for fetch operation'. С таким подходом я быстро обломался, потому что не смог увидеть 'no current record for fetch operation' даже когда вызов исключения располагался в самом конце, перед END, ни говоря уже о вызовах исключения выше по коду...
Как так, понять не могу.

Исключение обрывает выполнение. А эту ошибку выкидывает следующий триггер (или сам апдейт) при попытке прочитать удаленную запись.


--
Дмитрий Еманов

Ответить