Base De Datos
Enviado por paolahc72 • 16 de Mayo de 2015 • 1.670 Palabras (7 Páginas) • 150 Visitas
CAPITULO VI
LENGUAJE DE PROGRAMACION PL/SQL DE ORACLE
6.1 ¿Qué es PL/SQL?
PL /SQL es un sofisticado lenguaje de programación, utilizado para accesar bases de datos ORACLE, desde distintos ambientes.
Como su nombre lo indica, PL /SQL extiende las capacidades de SQL, agregando elementos encontrados en los lenguajes de programación procedurales tales como:
• Variables y tipos
• Estructuras de control como: if – then – else, ciclos
• Procedimientos y funciones.
PL / SQL está basado en el lenguaje ADA; muchos de los elementos de ADA, pueden ser encontrados en PL / SQL: estructura de bloque, manejo de excepciones, procedimientos, funciones, packages, etc.
PL/SQL integra completamente las modernas características de la ingeniería de software tales como: encapsulamiento de datos, ocultamiento de información, sobrecarga y manejo de excepciones, y así aporta el estado-del-arte de la programación al servidor ORACLE y una variedad de herramientas ORACLE.
La figura 6.1 muestra la arquitectura de ORACLE; la figura 6.2, las distintas herramientas de ORACLE; y la figura 6.3, como SQL se utiliza para construir las aplicaciones.
Fig. 6.1 Arquitectura de ORACLE
Fig. 6.2 Herramientas de ORACLE
6.2 Motor PL/SQL
El sistema runtime de PL /SQL es una tecnología, no un producto independiente. Se debe pensar en esta tecnología como un motor que ejecuta bloques y subprogramas PL/SQL. El motor puede ser instalado en un servidor ORACLE o en una herramienta de desarrollo de aplicaciones, tales como SQL* Forms, SQL* Menu o SQL* ReportWriter. Así, PL/SQL puede residir en dos ambientes:
• El servidor ORACLE
• Herramientas de ORACLE
Estos dos ambientes son independientes. PL/SQL podría estar disponible en el servidor pero no disponible en las herramientas y viceversa. En ambos ambientes, el motor PL/SQL acepta como entrada cualquier bloque o subprograma PL/SQL (ver figura 6.4).
La máquina PL/SQL ejecuta las sentencias procedurales, pero envía las sentencias SQL al Ejecutor de Sentencias SQL en el servidor ORACLE.
Las figuras 6.5 y 6.6, muestran los diversos ambientes de ejecución de bloques PL/SQL.
La figura 6.7 muestra el motor PL/SQL en el servidor, por lo que los datos son enviados por la red y ahí son ejecutados. A diferencia, en la figura 6.8, el motor PL/SQL se encuentra en el cliente.
6.3 Versiones de PL/SQL
Existen distintas versiones de PL/SQL, en particular, la versión 2 de PL/SQL, ofrece un conjunto de mejoras y nuevas características. Por ejemplo:
• Procedimientos y funciones
• Packages (Paquetes)
• Nuevos tipos de datos pre definidos
• Tablas PL/SQL
• Registros definidos por el usuario
• Nuevas funciones incorporadas
• Completo soporte para los operadores SQL
• Acceso remoto
• Soporte de lenguaje nacional (NLS)
• La nueva palabra clave DEFAULT
La tabla 6.1 muestra a ORACLE y PL/SQL, en sus distintas versiones.
Versión Oracle Versión PL/SQL Características agregadas o cambiadas
6 1.0 (Versión Inicial)
7.0 2.0 • Tipo de dato CHAR cambiado a longitud fija.
• Subprogramas (procedimientos, funciones, paquetes y triggers).
• Tipos de datos compuestos definidos por el usuario (tablas y registros).
• Comunicación intersesión con los paquetes DBMS_PIPE y DBMS_ALERT.
• Salida en SQL*Plus o SQL*DBA con el paquete DBMS_OUTPUT.
7.1 2.1 • Subtipos definidos por el usuario.
• Capacidad para funciones definidas por el usuario en sentencias SQL.
• PL/SQL dinámico con el paquete DBMS_SQL.
7.2 2.2 • Variables tipo cursor.
• Subtipos restringidos definidos por el usuario.
• Capacidad para planear procesamiento batch PL/SQL con el paquete DBMS_JOB.
7.3 2.3 • Mejoramiento de las variables tipo cursor (habilidad para buscar en el servidor).
• Archivos de I/O con el paquete UTL_FILE. Atributos de tablas y tablas de registros PL/SQL.
• Triggers almacenados en forma compilada.
Tabla 6.1 Versiones correspondientes de ORACLE y PL/SQL
Es importante estar informado de las versiones de PL/SQL que se está usando, para poder tomar ventaja de las características apropiadas. Cuando se conecta a la base de datos, el string inicial contendrá la versión inicial. Por ejemplo,
Connected to:
Personal ORACLE7 Release 7.1.4.1.0 – Production Release
PL/SQL Release 2.1.4.0.0-Production
6.4 Estructura de bloque
La unidad básica en cualquier programa PL/SQL es un bloque. Todos los programas PL/SQL están compuestos por bloques, los cuales pueden ocurrir secuencialmente (uno después del otro) o anidados (uno dentro del otro). Existen varias clases distintas de bloques:
• Bloques anónimos: Son construídos generalmente en forma dinámica y ejecutados sólo una vez.
• Bloques con nombre: Son bloques anónimos con un rótulo que le da al bloque un nombre. Son también construídos generalmente en forma dinámica y ejecutados una sola vez
• Subprogramas: Son procedimientos, paquetes y funciones, las que son almacenadas en la base de datos. Estos bloques generalmente no cambian una vez que están construidos, y son ejecutados muchas veces. Los subprogramas son ejecutados explícitamente vía llamadas al procedimiento, paquete o función.
• Triggers: Son bloques con nombre que también son almacenados en la base de datos. Generalmente tampoco cambian una vez que son construídos y son ejecutados muchas veces. Los triggers son ejecutados implícitamente cuando ocurre un evento gatillador. El evento gatillador es una sentencia del lenguaje de manipulación de datos (DML), ejecutada a una tabla de la base de datos. Las sentencias DML incluyen: INSERT, DELETE y UPDATE.
La estructura de un bloque (Figura 6.9) considera 3 secciones:
• Sección de declaración
• Sección ejecutable
• Sección de manejo de excepciones
La codificación con PL/SQL considera:
• Los bloques pueden contener subloques, los que pueden aparecer dondequiera que una declaración ejecutable puede legalmente aparecer.
• Las sentencias terminan con un punto y coma (;)
• Los comentarios
...