Você está na página 1de 27

SESIÓN 06

PL/SQL

"PL/SQL es el lenguaje de programación que proporciona Oracle para extender el SQL


estándar con otro tipo de instrucciones y elementos propios de los lenguajes de
programación "

DOCENTE: Mg. Orleans Moisés Gálvez Tapia


CURSO: GESTIÓN DE DATOS II – UCV 2019-1
BLOQUES PL/SQL

Con PL/SQL vamos a poder programar :


• Procedimientos almacenados
• Funciones
• Triggers
• Scripts
BLOQUES PL/SQL
INTRODUCCIÓN a PL/SQL

Declaración de Variables

Declaración de Constantes
CONTROL DE ERRORES (llamados también excepciones)

Bloque PL/SQL sin control de


errores (excepciones)

Error cuando el divisor sea


cero
… CONTROL DE ERRORES (llamados también excepciones)

Bloque PL/SQL en el que se


controla la Excepción de
división por cero
… CONTROL DE ERRORES (llamados también excepciones)

EXCEPCIONES PREDEFINIDADS EN ORACLE 11G


Ocurrió un error aritmético, de conversión o truncamiento. Por ejemplo, esto
VALUE_ERROR sucede cuando se intenta dar un valor muy grande a una variable que no
soporta dicho tamaño.
Cualquier otro error que pueda producirse. Cuando se utiliza la excepción
OTHERS, cualquier excepción que no se haya tratado anteriormente se
OTHERS
procesará según la secuencia de instrucciones incluida dentro de la sección
OTHERS.
ESTRUCTURAS DE CONTROL
ESTRUCTURAS REPETITIVAS
… ESTRUCTURAS REPETITIVAS

Es opcional declarar la variable que se


utiliza en For Loop ya que se declara
en forma automática de tipo
Binary_Integer
PL/SQL - CASE STATEMENT
PL/SQL - CASE Statement

Ejemplo 01:
PL/SQL - CASE Statement

Ejemplo 02:
PL/SQL - CASE Statement

La estructura CASE, nos sirve para organizar distintas


condiciones y qué hacer en cada caso, si una de ellas se
cumple, o ninguna. En PL/SQL podemos, tanto comparar
valores de unas ciertas variables, como asignar
simultáneamente otros valores a una variable central de la
estructura.

Ejemplo 03:
CASE (sintaxis 1) CASE (sintaxis 2)
Variables de sustitución
Use una variable precedida con un
ampersand (&) para pedir un valor al
usuario:
Variables de sustitución
Use una variable precedida con un
ampersand (&) para pedir un valor al
usuario:
Variables de sustitución
Use una variable precedida con un
ampersand (&) para pedir un valor al
usuario:
EJERCICIO 04: Construya un bloque PL/SQL que pida al usuario su nombre por teclado y
que posteriormente lo visualice de la siguiente forma “El nombre introducido es: NOMBRE”.

EJERCICIO 05: Escribir un bloque PL/SQL que calcule la media de dos números dados por
el usuario
EJERCICIO 06: En base a la tabla Personas, Construya un bloque PL/SQL, que pida por
teclado el DNI de la persona y que posteriormente se muestre el nombre y la edad de la
persona correspondiente.
SOLUCIÓN - EJERCICIO 06: En base a la tabla Personas, Construya un bloque
PL/SQL, que pida por teclado el DNI de la persona y que posteriormente se muestre el nombre y
la edad de la persona correspondiente.
EJERCICIO 07: Escribir un bloque PL/SQL que convierta una determinada
cantidad expresada en segundos a horas, minutos y segundos.
FLOOR(x): redondea a entero, hacia abajo, el
argumento "x". Ejemplo:
• select floor(12.34) from dual; -- retorna 12.

MOD(x,y): devuelve el resto de la división x/y.


Ejemplos:
• select mod(10,3) from dual; --retorna 1.
• select mod(10,2) from dual; --retorna 0.

EJERCICIO 07: Escribir un bloque PL/SQL que convierta una determinada


cantidad expresada en segundos a horas, minutos y segundos.
EJERCICIO 08: En base a la tabla AULAS, mostrar el contenido de una variable que
contenga la capacidad total de las aulas del edificio de Informática.
Luego hacer lo mismo pero solicitando el nombre del edificio al usuario.
SOLUCIÓN - EJERCICIO 08: En base a la tabla AULAS, mostrar el contenido de
una variable que contenga la capacidad total de las aulas del edificio de
Informática.
Luego hacer lo mismo pero solicitando el nombre del edificio al usuario.
EJERCICIO 09: Escribir un bloque PL/SQL que solicite al usuario el ingreso de un
número entero positivo y muestre un mensaje indicando si es PRIMO o no.
Ejemplo 10:

Escribir un bloque PL/SQL cuya salida


sea el reporte de la derecha. Luego
generalizar para:
i desde 1..n
j desde 1..m
n,m ingresados por el usuario

Você também pode gostar