Логические операции со значением NULL в Oracle возвращают UNKNOWN
- не истина или ложь. Итак, у вас есть что-то вроде этого:
If( not(UNKNOWN and (true)) = if not( UNKNOWN) =if( UNKNOWN )
В этом случае IF
будет рассматривать НЕИЗВЕСТНО как ложное.
Если i_relaunch
может быть нулевым, вам нужно использовать некоторые из функций обработки NULL (NVL, NVL2, NULLIF, COALESCE, LNNVL
), чтобы убедиться, что вы получите правильный результат.
См. Эту статью для получения дополнительной информации: