NULL-значения
В хранимых процедурах объекты скалярного типа могут иметь значение NULL, интерпретируемое как отсутствие данных. NULL-значение можно присваивать переменной любого типа, а так же сравнивать текущие значения переменных с NULL-значением. Переменные могут получить NULL-значение в результате явного присвоения или как значение по умолчанию (см. подраздел Присвоение значений).
При попытке выполнения любых действий (арифметических, логических и т.д.) с NULL-значениями, кроме операций присвоения и сравнения, происходит исключение NULLDATA.
Для указания NULL-значения используется литерал NULL.
Если исключение NULLDATA не прописано в блоке EXCEPTION, то оно игнорируется.
Примеры
1) При выполнении эта процедура завершится с исключением: 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; 2) А эта процедура будет выполняться без исключения: CREATE OR REPLACE PROCEDURE tst_code() RESULT INT FOR DEBUG DECLARE VAR v,z INT; CODE v := NULL; z:=1+v; RETURN z; END;