В письме от 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/

Ответить