В письме от Sat, 22 Oct 2011 13:33:46 +0400, Dmitry Yemanov
<dim...@users.sf.net> сообщал:
22.10.2011 9:21, Arioch пишет:
>
> Хорошая штука UPDATE с JOIN'ом :-)
Чем MERGE не устроил?
Вот....
Нарвался в данных на совпадение двух точек подряд. Отсюда нуевая длина и
деление на ноль. В одной строке из множества.
И все это внутри процедуры, хотя это и не так важно.
Недостаток в том, что сообщив про деление на ноль, FB это просто
констатирует, не сообщая где.
Между тем, объединяетсЯ таблица и вьюха, в которую в несколько шагов
объединяются ещё две таблицы.
Во всех таблицах есть PK, а в одной ещё и UNIQE индекс.
Если бы FB нарвавшись на жесткую ошибку типа деления на ноль, сообщил бы в
каком месте - было бы проще искать.
Проанализировать таблицы, входящие в запрос, какие у них есть уникальные
или PK-шные индексы, и добавить к сообщению об ошибке что-то типа
"Occured at: Table1(PK(field1=1; field2=2); Unique(field3 = "abc"));
Table2(PK(Field1=2)); Table2(PK(Field1=-2)); Table3(PK(Field1=0));"
--
Написано в почтовом клиенте браузера Opera: http://www.opera.com/mail/