Saltar al contenido principal
Página

Tema 2.4 - Estructuras de Control

Las comparaciones lógicas son la base del control condicional de PL/SQL, los resultados que nos arroja estas comparaciones son TRUE, FALSE y NULL.

Cualquier “cosa” que se compare con NULL retornará NULL.

Los operadores lógicos y de comparación son:


Sentencia IF

La sintaxis IF es la siguiente:

Notas:

  1. Los ELSIF se pueden repetir el número de veces necesarias.
  2. Los corchetes indican las partes de la sintaxis que son opcionales.
  3. En la sintaxis la condición la podemos encerrar también en paréntesis ().

Ejemplo 1:


Al ejecutar el código tenemos la salida:

Ejemplo 2:


La salida es la siguiente:

Sentencia CASE

Este tipo de sentencia se usa para ejecutar un bloque de instrucciones basado en el valor de expresión de cambio. Una expresión debe ser de tipo INT, NUMBER, CHAR, entre otros. El valor de CASE debe ser un valor constante y tampoco se puede duplicar.

El valor de la expresión se compara con cada cláusula WHEN que haya. Si se encuentra una coincidencia, se ejecuta el bloque de instrucciones correspondiente. Si la expresión en el CASE no coincide con ninguna condición, entonces se ejecuta las instrucciones que tenga la sentencia ELSE. Si la expresión encuentra muchas coincidencias, ingresará sólo a la primera condición y ejecutará las instrucciones de ese bloque.

A continuación, se muestra la sintaxis de esta sentencia.


Notas:

  1. Los corchetes indican las partes de la sentencia CASE que son opcionales.
  2. La cláusula WHEN se puede repetir en caso de que se tengan varias condiciones.

Ejemplo 1:

Se hará el mismo ejemplo de los días de la semana usado en la explicación de la sentencia IF, pero ahora utilizando CASE.


La salida que obtenemos después de ejecutar este código es el siguiente:

Ejemplo 2:


Esto nos dará el siguiente resultado:

Observamos que se ejecuta la instrucción del ELSE debido a que no se encontró ninguna coincidencia.

Ejemplo 3:


Podemos ver que hay dos coincidencias con la letra M, pero como el código se ejecuta de arriba hacia abajo, entrará a la primera condición y hará las instrucciones correspondientes para luego terminar su ejecución.


Ejemplo 4:

Ahora se muestra la “segunda forma” de implementar esta sentencia que es cuando después de CASE no colocamos ninguna expresion. Para mostrar esto seguiremos usando el mismo ejemplo de los días de la semana.


Tenemos como resultado lo siguiente:

Bucles

Sentencia LOOP

Es un tipo de bucle que se repite indefinidamente hasta que alcance una salida de bucle. Las salidas de bucle pueden ser las instrucciones EXIT o EXIT WHEN.

La sintaxis para el bucle LOOP es la que se muestra a continuación:

Nota: Los corchetes representan la parte del código que es opcional.

Para tener más claridad con esta sentencia, haremos algunos ejemplos mostrando las diferentes formas de implementarlo.

Ejemplo 1:

Utilizaremos la declaración EXIT para salir del bucle. Este tipo de salida de bucle se usa cuando se maneja la sentencia IF.


El siguiente código imprimirá en pantalla:

Ejemplo 2:

En este ejemplo vamos a implementar la declaración EXIT WHEN para salir del bucle. Terminará el ciclo sólo si la condición de salida es verdadera.


Al ejecutar el código obtenemos el siguiente resultado:

Sentencia FOR

Permite repetir una secuencia de instrucciones un número fijo de veces. La sintaxis es:

Notas:

  1. Los corchetes representan la parte de la sintaxis que es opcional.
  2. El punto doble (..) especifica el operador de rango.
  3. El incremento del FOR siempre es de 1 en 1 y no necesita ser incrementado de manera explícita.
  4. Por defecto la iteración empieza desde valor_inicial hasta valor_final, pero se puede hacer en “reversa” usando la palabra clave REVERSE.
  5. Aunque el ciclo se haga en “reversa” los límites siempre se colocan de menor a mayor.
  6. Se pueden usar las sentencias EXIT y EXIT WHEN.

Ejemplo 1:


La salida es:

Ejemplo 2:


La salida es:

Ejemplo 3:

Usaremos la palabra reservada REVERSE para imprimir los números del 1 al 8 de manera descendente.


El resultado que se muestra en pantalla es:

Sentencia WHILE

El bucle WHILE permite repetir un bloque de instrucciones indefinidamente hasta que la condición controladora del ciclo deje de ser verdadera. Primero se verifica la condición y luego se ejecuta las instrucciones siempre y cuando la condición sea TRUE.

La sintaxis es:

Ejemplo:


Imprime en pantalla el siguiente resultado:

Última modificación: lunes, 11 de mayo de 2020, 21:05