Base de datos PL/SQL
merkderResumen10 de Abril de 2016
11.524 Palabras (47 Páginas)360 Visitas
Escribir programas de acceso a basa de datos con PL/SQL
SQL no es nada mas que un lenguaje de acceso a datos que permite a la aplicaciones introducir y obtener datos de una base de dato de Oracle, en otra palabra, SQL por si mismo no es un autentico lenguaje de programación que puede usar para desarrollar aplicaciones potentes de bases de datos. Para crear una aplicación de base de datos, debe usar un lenguaje de procedimiento que englobe SQL para interactuar con una base de datos de Oracle. Este capitulo explica el lenguaje de procedimiento PL/SQL particular de Oracle, que puede usar para programar un servidor de base de datos Oracle y aplicaciones acosadas. Trataremos los siguientes temas:
- Fundamentos de la codificación PL/SQL.
- Bloques PL/SQL anónimos.
- Paquetes, funciones y procedimientos almacenados
- Disparadores de base de datos.[pic 1]
Requisitos esenciales de este capitulo
Para practicar los ejercicios de este capitulo, deberá iniciar SQL*plus y ejecutar la siguiente secuencia de comandos:
ubicación\StarterKit\Sql\Chp05.sql
donde ubicación es el directorio de archivo en el que expandió el archivo de soporte que acompaña a este libro. Por ejemplo, después de iniciar como SQL*Plus y como SCOTT, puede ejecutar la secuencia de comandos de SQL de este capitulo usando los comando SQL*Plus @, como en el siguiente ejemplo (suponiendo que el archivo (suponiendo que el archivo chapO5.sql está en C:\temp8iStarterKit\Sql).
SQL> @C: \ temp\ SiStarterKit\ Sql\ chapO5 .sql;
Una vez finalizada con éxito la secuencia de comandos, abandone la sesión actual de SQL*Plus abierta y úselo para realizar los ejercicios de este capítulo en el orden en que aparecen.
¿Qué es PL/SQL?
PL/SQL es un lenguaje de procedimientos que se incluye en la mayoría de los productos de Oracle. Con PL/SQL, se pueden crear programas para procesar información combinando las sentencias d procedimientos de PL/SQL que controlan el flujo del programa y sentencias SQL que acceden a una base de datos de Oracle. Por ejemplo, a continuación se presenta un programa PL/SQL muy simple que actualiza el UNITPRICE de una pieza, dado el número de ID de la pieza.
CREATE OP. REPLACE PROCEDURE updatePartPrice
(partId IN INTEGER,
newPrice IN NUMBER)
IS
invalidpart EXCEPTION;
BEGIN
— ESTA ES UN SENTENCIA DE ACTUALIZACIÓN AN PARA ACTUALIZAR EL REGISTRO DE UNA BASE DE DATOS
UPDATE parts
SET unitprice = newPrice
WHERE id = partId;
- AQUÍ HAY UN ERROR-COMPROBANDO SENTENCIA
IF SQL%NOTFOUND THEN
RAISE invalidPart;
END IF;
EXCEPTION
- AQUÍ HAY UN ERROR-MANEJAR LA RUTINA
WHEN invalidPart THEN
raise_application_error (-20000, ‘Invalid Part ID’);
END updatePartPrice;
invalidpart EXCEPTION;
Este programa de ejemplo es un procedimiento almacenado como una unidad de programa en una base de datos. Usando PL/SQL, puede crear muchos tipos de unidades de programas de acceso a bases de datos, incluyendo bloques PL/SQL anónimos, procedimientos, funciones y paquetes. Todas las secciones de este capítulo incluyen ejemplos de programas PL/SQL. Pero antes de aprender todo sobre los programas auténticos PL/SQL, es necesario comprender las construcciones de programación básicas y los comandos que ofrece el lenguaje PL/SQL.[pic 2]
Bloques PL/SQL
Un programa PL/SQL se estructura usando distintos bloques que agrupan declaraciones y sentencias relacionadas. Cada bloque de un programa PL/SQL tiene una tarea específica y resuelve un problema particular. En consecuencia, puede organizar un programa PL/SQL de forma que éste sea fácil de comprender.
Un bloque PL/SQL puede incluir tres secciones, como muestra el siguiente pseudocódigo: declaraciones de programa el cuerpo del programa principal y controladores de excepciones.
DECLARE
— program declaration is optional
BEGIN
— program body is required
EXCEPTION
— exception handlers are optional
END;
La mayoría de los ejemplos de este capítulo exigen que use SQL*Plus e interactivamente escriba y ejecute bloques PL/SQL anónimos mientras aprende los fundamentos de PL/SQL. Un bloque PL/SQL anónimo no tiene nombre y no se almacena de forma permanente como un archivo o en una base de datos de Oracle. Una aplicación, como SQL*Plus, simplemente envía el bloque PL/SQL al servidor de bases de datos para que lo procese en tiempo de ejecución. Una vez que Oracle ejecuta un bloque PL/SQL anónimo, el bloque deja de existir.
Declaraciones del programa
La sección de declaraciones de un bloque PL/SQL es el lugar donde el bloque declara todas las variables, constantes, excepciones, etc., que son accesibles para todas las partes del mismo bloque. La sección de declaraciones de un bloque PL/SQL comienza con la palabra clave DECLARE y termina implícitamente con la palabra clave BEGIN del cuerpo del programa. Si el programa no necesita realizar ninguna declaración, no es necesaria la sección de declaraciones.
Cuerpo del programa
El cuerpo del programa principal de un bloque PL/SQL contiene las sentencias ejecutables para el bloque. En otras palabras, el cuerpo donde el bloque PL/SQL define su funcionalidad. El cuerpo de un bloque PL/SQL comienza con la palabra clave BEGIN y termina con la palabra clave EXCEPTION que inicia la sesión de manejo de excepciones del bloque; si el bloque no incluye ningún controlador de excepciones, el cuerpo del programa termina con la palabra clave END que finaliza el bloque por completo.
Manipuladores de excepciones
La sección de control de excepciones opcional de un bloque PL/SQL contiene los controladores de excepciones (rutinas de control de errores) para el bloque. Cuando una sentencia del cuerpo del bloque genera una excepción (detecta un error), éste transfiere el control del programa al controlador de excepciones correspondiente en la sección de excepción para procesarla completamente. La sección de control de excepciones de un bloque PL/SQL comienza con la palabra clave EXCEPTION y termina con la palabra clave END. Si un programa no necesita definir ningún controlador de excepciones, la sección de control de excepciones del bloque no es necesaria.
Comentarios del programa
Todos los bloques de un programa PL/SQL deberían incluir comentarios que documenten las declaraciones del programa y su funcionalidad. Los comentarios clarifican el propósito de los programas y los segmentos de código específicos.
PL/SQL soporta dos estilos diferentes para los comentarios, como muestra el siguiente segmento de código.
— PRECEDER UN COMENTARIO DE UNA ÚNICA LÍNEA CON EL DOBLE GUIÓN.
/* DELIMITAR COMENTARIOD MULTILÍNEA CON “/* ” COMO PREFIJO Y “ */ ” COMO SUFIJO. UN COMENTARIO MULTILÍNEA CONTIENE CUALQUIER NÚMERO DE LÍNEAS. */.
Los ejemplos de todo este capítulo suelen usar comentarios que ayudan a explicar la funcionalidad de los listados de código.
Fundamentos de la codificación PL/SQL
Todos los lenguajes de procedimientos, como PL/SQL, tienen elementos de lenguaje fundamentales y funcionalidad sobre la que necesitará aprender algo antes de poder crear programas usando el lenguaje. Las siguientes secciones introducen los elementos básicos de PL/SQL, incluyendo los siguientes:
• Cómo declarar variables de programa y asignarles valores.
• Cómo controlar el flujo del programa con bucles y lógica condicional.
• Cómo incluir sentencias SQL incrustadas e interactuar con bases de datos de Oracle.
• Cómo declarar y usar subprogramas (procedimientos y funciones) dentro de los Bloques PL/SQL.
• Cómo declarar tipos definidos por el usuario, como registros y tablas anidadas.
• Cómo declarar y usar cursores para procesar peticiones que devuelven múltiples filas.
• Cómo usar controladores de excepción para manejar condiciones de error.
Trabajar con variables del programa
Todos los programas de procedimientos suelen declarar una o más variables de programa y las usan para almacenar información temporal para el procesamiento del programa. Los dos ejercicios siguientes muestran cómo declarar variables de programa (y constantes), iniciarlas y asignarles valores en el cuerpo de un programa PL/SQL.
EJERCICIO 5.1: Declarar variables y constantes con tipos de datos básicos
La sección de declaraciones de un programa PL/SQL puede incluir declaraciones de variables y de constantes. La sintaxis general que usará usted para declarar una variable escalar o constante es la siguiente:
...