Грабли 3 - арифметические действия с null
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Пт Апр 02, 2010 21:54   |
|
Полезность: Нет оценки
|
Сегодня наступил.. не мог понять почему не работает..
Код: | declare
sum number := null;
doc ref [MAIN_DOCUM];
begin
doc.[SUM] := doc.[SUM] - sum;
....
end; |
если из суммы вычесть null, то получим null... утром ни как не мог понять почему обнулялась сумма в документе
решение:
Код: | declare
sum number := null;
doc ref [MAIN_DOCUM];
begin
doc.[SUM] := doc.[SUM] - nvl(sum, 0);
....
end; |
_________________ всегда есть как минимум 2 выхода |
|
 |
IBSO Профи
Вступление в Клуб: 20.08.2009
|
Сб Апр 03, 2010 12:27   |
|
Полезность: Нет оценки
|
Да это точно необходимо nvl использовать там где это кажется ненужным. Тоже приходится энвыэлить.... |
|
 |
Ghost Профи
Вступление в Клуб: 24.11.2007
|
Сб Апр 03, 2010 13:42   |
|
Полезность: Нет оценки
|
Alexsey пишет: | Сегодня наступил.. не мог понять почему не работает..
Код: | declare
sum number := null;
|
|
А что мешает сделать так:
Код: |
declare
sum number := 0;
|
Я конечно не очень силен в кодировании, и наверно потому особых препятствий не вижу. |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Сб Апр 03, 2010 21:55   |
|
Полезность: Нет оценки
|
Ghost пишет: | Alexsey пишет: | Сегодня наступил.. не мог понять почему не работает..
Код: | declare
sum number := null;
|
|
А что мешает сделать так:
Код: |
declare
sum number := 0;
|
Я конечно не очень силен в кодировании, и наверно потому особых препятствий не вижу. |
так в том и дело, что никто не мешает.. проблема в том, что код не я писал. .я только нашел багу)) Да и нет гарантии, что где нитьв коде нет подобных граблей.. в том числе и в дистрибутиве. .я как раз это там нашел))) _________________ всегда есть как минимум 2 выхода |
|
 |
zinovjeva_n Участник - экстремал
Вступление в Клуб: 15.10.2008
|
Пн Апр 05, 2010 11:05   |
|
Полезность: Нет оценки
|
Это кстати, достаточно частая ошибка. _________________ Coding for food |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|