NULL-значения
В хранимых процедурах объекты скалярного типа могут иметь значение NULL, интерпретируемое как отсутствие данных. NULL-значение можно присваивать переменной любого типа, а так же сравнивать текущие значения переменных с NULL-значением. Переменные могут получить NULL-значение в результате явного присвоения или как значение по умолчанию (см. подраздел Присвоение значений).
При попытке выполнения любых действий (арифметических, логических и т.д.) с NULL-значениями, кроме операций присвоения и сравнения, происходит исключение NULLDATA.
Для указания NULL-значения используется литерал NULL.
Если исключение NULLDATA не прописано в блоке EXCEPTION, то оно игнорируется.
Примеры
-
При выполнении эта процедура завершится с исключением:
create or replace procedure tst_code() result int for debug DECLARE var v,z int; exception NULLDATA for NULLDATA; CODE v := NULL; z:=1+v; return z; END;
-
А эта процедура будет выполняться без исключения:
create or replace procedure tst_code() result int for debug DECLARE var v,z int; CODE v := NULL; z:=1+v; return z; END;