Saltar al contenido

Comprobar si una variable es null en plsql

Agradeceríamos tu apoyo para difundir nuestras crónicas con relación a las ciencias informáticas.

Solución:

if var is NULL then
  var :=5;
end if;

Utilizar:

IF Var IS NULL THEN
  var := 5;
END IF;

Oráculo 9i+:

var = COALESCE(Var, 5)

Otras alternativas:

var = NVL(var, 5)

Referencia:

  • JUNTARSE
  • NVL
  • NVL2

En PL/SQL no puede usar operadores como ‘=’ o ‘<>‘ para probar NULL porque todas las comparaciones con NULL regreso NULL. Comparar algo contra NULL necesitas usar los operadores especiales IS NULL o IS NOT NULL que están allí precisamente para este propósito. Así, en lugar de escribir

IF var = NULL THEN...

Deberías escribir

IF VAR IS NULL THEN...

En el caso que te hayas dado también tienes la opción de utilizar el NVL función incorporada. 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 de NVL no es NULL, se devuelve el primer argumento. Entonces podrías reescribir

IF var IS NULL THEN
  var := 5;
END IF;

como

var := NVL(var, 5);

Espero que esto ayude.

EDITAR

Y como han pasado casi diez años desde que escribí esta respuesta, celebremos ampliándola un poco.

los COALESCE función es el equivalente ANSI de Oracle NVL. Se diferencia de NVL en un par de buenas maneras en mi opinión:

  1. Toma cualquier número de argumentos y devuelve el primero que no es NULL. Si todos los argumentos pasan a COALESCE son NULL, devuelve NULL.

  2. En contraste con NVL, COALESCE solo evalúa los argumentos si debe hacerlo, mientras que NVL evalúa ambos argumentos y luego determina si el primero es NULL, etc. Entonces COALESCE puede ser más eficiente, porque no pierde tiempo evaluando cosas que no se usarán (y que potencialmente pueden causar efectos secundarios no deseados), pero también significa que COALESCE no es un reemplazo directo 100% sencillo para NVL.

Reseñas y calificaciones del tutorial

Si haces scroll puedes encontrar las referencias de otros desarrolladores, tú además puedes dejar el tuyo si lo deseas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *