PL-SQL Packages en OracleSi aprendes como se debe usar la sentencia IF en PL-SQL Packages en Oracle podrás estructurar rápidamente la toma de decisiones dentro de tus PL-SQL Procedures en Oracle y PL-SQL Function en Oracle.

A menudo es necesario tomar decisiones alternativas dentro de los PL-SQL Packages en Oracle dependiendo de las circunstancias o del contexto en donde estés construyendo tus PL-SQL Procedures en Oracle o PL-SQL Function en Oracle.

La sentencia IF te permite ejecutar una secuencia de declaraciones de forma condicional, es decir, si la secuencia se ejecuta o no en tus PL-SQL Packages en Oracle depende del valor de una condición. El valor de una condición debe ser verdadero (TRUE) para que sea ejecutado o falso (FALSE) para que no se ejecute.

La sentencia IF se puede usar de tres formas: IF-THEN, IF-THEN-ELSE and IF-THEN-ELSIF. Revisemos algunos ejemplos prácticos para que entiendas mejor como se debe utilizar la sentencia IF en tus PL-SQL Packages en Oracle.

Ejemplo #1: Supone que debes calcular un bono por las ventas que ha realizado cada empleado dependiendo de ciertas condiciones, veamos como se hace:

/* PL-SQL Packages en Oracle */

IF lin_ventas > 10000 THEN

lin_bono:= 500;

END IF;

UPDATE t_venta_empleado SET bono= lin_bono WHERE id_empleado = pin_id_empleado;

En este ejemplo se muestra la forma más simple la sentencia IF, donde se pregunta si las ventas fueron mayores que 10000, si la condición es verdadera se asigna un bono de 500, fíjate que en los PL-SQL Packages en Oracle siempre debes incluir la cláusula THEN y cerrar el bloque con END IF; (no es ENDIF;).

Ejemplo #2: Agreguemos ahora la cláusula ELSE al ejemplo anterior, veamos como se hace:

/* PL-SQL Packages en Oracle */

IF lin_ventas > 10000 THEN

lin_bono:= 500;

ELSE

lin_bono:= 200;

END IF;

UPDATE t_venta_empleado SET bono= lin_bono WHERE id_empleado = pin_id_empleado;

En este ejemplo se muestra la segunda forma de usar la sentencia IF incluyendo la cláusula ELSE para generar un caso contrario en tus PL-SQL Packages en Oracle, es decir, si la primera condición no es verdadera se asigna un bono de 200 y luego el control pasa a la instrucción UPDATE. También puedes anidar sentencias IF de la siguiente forma:

/* PL-SQL Packages en Oracle */

IF lin_ventas > 10000 THEN

lin_bono:= 500;

ELSE

IF lin_ventas < 5000 THEN

lin_bono:= 100;

ELSE

lin_bono:= 200;

END IF;

END IF;

UPDATE t_venta_empleado SET bono= lin_bono WHERE id_empleado = pin_id_empleado;

En este ejemplo se agrega otra sentencia IF para obtener un bono de 100 si las ventas son menores que 5000, de esta forma se pueden anidar todas las sentencias IF que sean necesarias.

Ejemplo #3: Veamos ahora como usar la cláusula ELSIF (no es ELSEIF) modificando el mismo ejemplo anterior:

/* PL-SQL Packages en Oracle */

IF lin_ventas > 10000 THEN

lin_bono:= 500;

ELSIF lin_ventas < 5000 THEN

lin_bono:= 100;

ELSE

lin_bono:= 200;

END IF;

UPDATE t_venta_empleado SET bono= lin_bono WHERE id_empleado = pin_id_empleado;

La cláusula ELSIF permite anidar condiciones mutuamente excluyentes, si la primera condición es falsa se evalúa la segunda condición y así sucesivamente. En este ejemplo de PL-SQL Packages en Oracle si las ventas son menores que 5000 se cumple la segunda condición y se asigna un bono de 100 y el control pasa a la instrucción UPDATE.

Te recomiendo que siempre se use el ELSIF en lugar de IF anidados, de esta manera el código de tus PL-SQL Packages en Oracle queda mas fácil de leer y de entender para modificaciones posteriores.

Te propongo que pruebes de inmediato estos ejemplos 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 – Para Tu Éxito con Oracle

Director del Curso “Domina Tus Packages En Oracle