PL-SQL Packages en OracleSi sabes cómo y cuándo utilizar correctamente la cláusula EXISTS dentro de  tus consultas SELECT podrás resolver problemas referentes a inconsistencias de datos que ocurran en tus PL-SQL Packages en Oracle. Estas inconsistencias se pueden deber a que en una query de tus PL-SQL Packages en Oracle se muestran registros que no corresponden debido a que ya se muestran en otra query.

La cláusula EXISTS siempre evalúa una subconsulta en tus PL-SQL Packages en Oracle y devuelve un valor lógico el cual es verdadero (TRUE) si la subconsulta puesta dentro del EXISTS retorna filas y en caso contrario, es decir, la subconsulta no devuelve filas se devuelve un valor falso (FALSE). En el SELECT la cláusula EXISTS se puede consultar de forma positiva colocando solo la palabra EXISTS o de forma negativa agregando la palabra NOT quedando la consulta en tus PL-SQL Packages en Oracle como NOT EXISTS.

Puedes pensar que EXISTS es muy similar a la cláusula IN pero EXISTS es mucho más rápida. Para entender mejor como se debe trabajar con la cláusula EXISTS en tus PL-SQL Packages en Oracle veamos un ejemplo práctico.

Ejemplo #1: Supone que tienes una consulta por departamento a la tabla de empleados la que está mostrando filas que no corresponden debido a que algunos empleados se encuentran en proceso de evaluación.

/* PL-SQL Packages en Oracle */

Select emp.rut, emp.dv, emp.nombre_emp

from t_empleado emp

where emp.id_departamento = pin_id_departamento

and ind_estado = 9; — 9= ascendidos

Este ejemplo trae todos los empleados de un departamento en particular que tengan el estado de ascendido, pero no se deben mostrar empleados que están en evaluación, para solucionar este problema en tus PL-SQL Packages en Oracle se debe usar la cláusula EXISTS, veamos cómo se debe hacer:

TÚ REPORTE: “Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos”

¡ Haz Click Aquí y Descárgalo GRATIS Ahora !

/* PL-SQL Packages en Oracle */

Select emp.rut, emp.dv, emp.nombre_emp

from t_empleado emp

where emp.id_departamento = pin_id_departamento

and ind_estado = 9 — 9= ascendidos

and NOT EXISTS (select 1 from t_evaluacion eva where eva.id_empleado =

emp.id_empleado );

En este ejemplo de PL-SQL Packages en Oracle se modifica la misma query anterior incluyendo la cláusula NOT EXISTS para que en la consulta no se incluyan los empleados que están en proceso de evaluación. Nota que en la subconsulta de PL-SQL Packages en Oracle no es necesario seleccionar un campo para el Select, es suficiente con poner un texto, número o null, además fíjate que a la subconsulta en la condición del Where se está pasando como parámetro el id_empleado de la tabla t_empleado (emp.id_empleado).

Te propongo que pruebes de inmediato este ejemplo en tu Base de Datos con tus propias tablas, PL-SQL Procedures en Oracle y PL-SQL Function en Oracle, para que comiences a ejercitar la mano y aprendas a dominar esta nueva técnica en tus PL-SQL Packages en Oracle.

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 PL-SQL Packages en Oracle y/o dime cuál es tu principal frustración a la hora de trabajar con PL-SQL 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 Solo 7 Pasos