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, ни говоря уже о вызовах
исключения выше по коду...
Как так, понять не могу.
Исключение обрывает выполнение. А эту ошибку выкидывает следующий
триггер (или сам апдейт) при попытке прочитать удаленную запись.
--
Дмитрий Еманов