Sepa como Utilizar la Function NVL en los Packages en Oracle

Aprende a utilizar correctamente la function NVL de Oracle te permitirá resolver fácilmente los problemas que encuentres en tus consultas a la Base de Datos que te impidan obtener los datos correctamente.

Las function de Oracle NVL es una de las funciones más utilizadas para la construcción de consultas SELECT en la Base de Datos, ya que te ayuda a resolver problemas en la construcción de tus querys para obtener los datos deseados.  

La función NVL te permite que un campo o variable que contenga un dato NULL (nulo) devuelva o retorne un valor por defecto. Esta function puede ser utilizada en cualquier parte de un proceso ya sea en comandos de SQL y/o PL/SQL. Veamos ahora algunos ejemplos prácticos:

Ejemplo #1: Supongamos que debemos evaluar una variable nula en la cláusula IF para realizar algunas acciones, veamos cómo se hace:

lin_edad_empleado                number(5);

Begin

lin_edad_empleado:= Null;

       If lin_edad_empleado = 0 Then

lst_error:= ‘Empleado sin edad registrada’

End if;

End;

En este ejemplo se declara la variable lin_edad_empleado de tipo numérica, se inicia con un valor Nulo (NULL) y luego se pregunta si la edad es igual a cero (0) se envía un mensaje de error. El problema evidente que ocurre aquí es que el IF nunca se cumplirá o nunca será verdadero porque la variable de edad contiene el valor NULL, y para este caso Null o Cero significan que el empleado no tiene la edad registrada. Para resolver esto rápidamente utilizaremos la function NVL:

If Nvl(lin_edad_empleado, 0) = 0 Then

En el IF incluimos la function NVL para retornar un 0 (cero) si la variable lin_edad_empleado tiene un valor Null. Con esto te aseguras que siempre se cumpla la condición, si la variable llega con un valor null o con el valor 0 (cero).

TÚ REPORTE: “Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos”  ¡ Haz Click Aquí y Descárgalo GRATIS Ahora !

Ejemplo #2: Ahora veamos cómo se utiliza la función NVL en una consulta SELECT tanto en los campos seleccionados como en la cláusula WHERE, veamos cómo se hace:

Select emp.rut, emp.nombre

From T_Empleado emp

Where emp.id_departamento = 10

            and emp.edad = 0;

Esta consulta SELECT busca todos los empleados del departamento 10 cuya edad sea igual a 0 (cero), si hay empleados cuyo campo edad se encuentre con valor nulo (NULL) esta consulta no los traerá, para solucionar este problema rápidamente usemos la funtion NVL:

Select emp.rut, emp.nombre

From T_Empleado emp

Where emp.id_departamento = 10

            and Nvl(emp.edad,0) = 0;

Ahora la consulta traerá todos los empleados del departamento 10 cuyo campo edad este con valor 0 (cero) o con valor NULL.

Estoy muy interesado en conocer tu opinión y/o comentario sobre este artículo, también cuéntame sobre qué es lo que quieres saber de Packages en Oracle y/o dime cuál es tu principal frustración a la hora de trabajar con Packages en Oracle. Estaré muy atento respondiendo tus preguntas y/o comentarios, gracias.

Saludos

Roberto Vicencio – Escritor del Reporte:

Cómo Construir un SELECT Eficiente en ORACLE en 7 Pasos

Esta entrada fue publicada en Function en Oracle, Packages en Oracle, Procedures en Oracle y etiquetada , , , , , . Guarda el enlace permanente.

3 respuestas a Sepa como Utilizar la Function NVL en los Packages en Oracle

  1. pzo51 dijo:

    gracias por tu explicacion, muy clara, estoy adelantando conocimientos del instituto y me sirvio bastante.
    saludos

  2. juan dijo:

    como se usa en una consulta que no te arroja datos???

    • Hola Juan, gracias por comunicarte, el NVL no sirve de nada en una consulta que no entrega filas, ya que al no haber un registro no se puede transformar ningun dato.

      PD: Pronto voy a dar un Seminario gratuito sobre como construir un Select de múltiples tablas, debes estar atento para que reserves tu cupo, publicaré el día y la hora en el blog y también por email.

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s