En PL/SQL no se puede utilizar operadores tales como '=' o '<>' para la prueba de NULL
porque todas las comparaciones a NULL
retorno NULL
. Para comparar algo en contra de NULL
, necesita utilizar los operadores especiales IS NULL
o IS NOT NULL
que están ahí precisamente para este propósito.Por lo tanto, en lugar de escribir
IF var = NULL THEN...
debe escribir
IF VAR IS NULL THEN...
En el caso de que hayas dado que también tiene la opción de utilizar la función incorporada NVL
. NVL
toma dos argumentos, el primero es una variable y el segundo es un valor (constante o calculado). NVL
mira su primer argumento y, si encuentra que el primer argumento es NULL
, devuelve el segundo argumento. Si el primer argumento para NVL
no es NULL
, se devuelve el primer argumento. Por lo que podría reescribir
IF var IS NULL THEN
var := 5;
END IF;
como
var := NVL(var, 5);
espero que esto ayude.
Esperé 5 años para decirte esto, pero gracias por tu respuesta. –