Está en la página 1de 21

E STRUCTURAS C ONTROL PL/SQL

Csar Martnez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC

I NTRODUCCIN

En PL/SQL existen estructuras que controlan el flujo de la informacin

E STRUCTURA DE C ONTROL IF

Sintxis:

IF <condicin> THEN -- Cdigo ELSIF <condicin> THEN -- Cdigo ELSE -- Cdigo END IF;

E JEMPLO DE U SO DE LA S ENTENCIA IF

E STRUCTURA DE C ONTROL CASE

Sintaxis:

CASE variable WHEN valor 1 THEN Cdigo

WHEN valor 2 THEN Cdigo


WHEN valor 3 THEN Cdigo ELSE -- Cdigo

END CASE;

La estructura de control CASE tambin puede usarse en una sentencia SELECT o asignar su resultado a una variable (Variable:= case.)

E JEMPLO DE U SO DE LA S ENTENCIA CASE

E STRUCTURA DE C ONTROL GOTO

La sentencia GOTO permite desviar el flujo de ejecucin a la etiqueta indicada Las etiquetas en el cdigo se sealan con los smbolos << y >> Sintxis:

GOTO etiqueta

E JEMPLO DE U SO DE LA S ENTENCIA GOTO

C ONSIDERACIONES EN EL USO DE LA S ENTENCIA GOTO

No es muy recomendable el uso de esta sentencia, ya que el abuso en su uso hace mas difcil el seguimiento del cdigo para su depuracin (rompe lo sealado para un lenguaje estructurado) Existen restricciones en su uso para algunos casos particulares, como por ejemplo, junto a la sentencia IF

E JEMPLO DE R ESTRICCIONES PARA EL USO S ENTENCIA GOTO

S ENTENCIAS

PARA

C ICLOS

PL/SQL ofrece tres formas para realizar ciclos:

LOOP: Repite los ciclos infinitamente hasta que encuentra una la instruccin EXIT

WHILE: Repite los ciclos mientras la condicin que lo acompaa sea verdadera
FOR: Repite los ciclos tantas veces como lo sealen sus variables de inicio y termino

S ENTENCIA LOOP

Sintaxis 1:
LOOP -- Cdigo If <condicin> then EXIT; End if; END LOOP;

Sintaxis 2:
LOOP -- Cdigo EXIT WHEN <condicin>; END LOOP;

E JEMPLO U SO S ENTENCIA LOOP

S ENTENCIA WHILE

Sintaxis:
WHILE <condicion> LOOP -- Cdigo END LOOP;

El ciclo se repite mientras <condicin> sea verdadera

E JEMPLO U SO S ENTENCIA WHILE

S ENTENCIA FOR

Sintaxis:
FOR contador IN [REVERSE] inicio..final LOOP -- Cdigo END LOOP;

Con la opcin REVERSE el ciclo se ejecuta en forma inversa

E JEMPLO U SO S ENTENCIA FOR

Se debe notar que la variable que utiliza la sentencia FOR, excepcionalmente no es necesario declararla en la seccin declarativa. Esta variable asume el tipo de datos utilizado por el ciclo

E JEMPLO U SO S ENTENCIA FOR

La variable j asume la estructura fila de la tabla persona (recordar el concepto de %rowtype)

E JERCICIOS
1.

Crear un bloque annimo que imprima en pantalla los nmeros pares existentes entre 1 y 100

2.

Crear un bloque annimo que imprima en pantalla los nmeros de los das del mes de agosto del ao 2015 que sean da sbado. (Utilizando
el formato day obtiene el nombre del da con la funcin to_char)

3.

Crear un bloque annimo que imprima en pantalla el factorial de un nmero ingresado como variable (El factorial de un nmero es n!:= 1 * 2 * 3 * .. * n)

AYDANOS

M EJORAR

cesa.martinez@profesor.duoc.cl cmartinezc@duoc.cl

FIN

Csar Martnez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC

También podría gustarte