Introduccion al pl-sql
• Oracle incorpora un gestor PL/SQL en el servidor de la BD y en las principales herramientas (Forms, Reports, Graphics,…) • Este lenguaje está basado en el lenguaje ADA e incorpora todas las características de una lenguaje de tercera generación: – Variables – Estructura modular (procedimientos y funciones) – Estructuras de control (bifurcaciones, bucles y demás) – Control deexcepciones – Etc.. • Los programas creados con PL/SQL se pueden almacenar en la base de datos como cualquier otro objeto de ésta, facilitando el acceso a todos los usuarios autorizados a ellos. • Los programas se ejecutan en el servidor • Es también imprescindible para construir disparadores o triggers de bases de datos (bloques PL/SQL asociados a una tabla que se ejecutan o disparan cuando se producenciertos eventos sobre la tabla).
Tema 10_ Introducción al PL-SQL 1
Características
• PL/SQL es un lenguaje procedimental. • Está incluido en el servidor y en algunas herramientas de cliente. • Soporta todos los comandos de consulta y manipulación de datos. • Aporta al lenguaje SQL estructuras de control y otros elementos propios de los lenguajes de programación de tercera generación. • Suunidad de trabajo es el bloque, constituido por un conjunto de declaraciones, instrucciones y mecanismos de gestión de errores y excepciones.
Tema 10_ Introducción al PL-SQL 2
Bloques PL/SQL
• Con PL/SQL se pueden construir distintos tipos de programas: procedimientos, funciones,.. • La estructura básica de este lenguaje es el bloque. • Un bloque tiene 3 zonas:
– Una zona de declaraciones:• donde se declaran objetos (variables, constantes, ..) • Es opcional • Suele ir precedida por la cláusula DECLARE (o IS/AS en los procedimientos y funciones)
– Un conjunto de instrucciones:
• Precedido por la cláusula BEGIN
– Una zona de tratamientos de excepciones:
• Precedido por la cláusula EXCEPTION. • Esta zona también es opcional.
Tema 10_ Introducción al PL-SQL 3
Bloques PL/SQL• El formato genérico de un bloque: [DECLARE ] BEGIN [EXCEPTION ] END; En este ejemplo se borra el departamento número 20, pero antes se crea un departamento provisional, donde se guardan los empleados del departamento 20. También informa del número de empleados afectados. • Ejemplo: DECLARE v_num_empleados NUMBER(2); BEGIN INSERT INTO DEPART VALUES (99,’PROVISIONAL’,NULL); UPDATE EMPLE SETDEPT_NO=99 WHERE DEPT_NO=20; v_num_empleados := SQL%ROWCOUNT; DELETE FROM depart WHERE DEPT_NO=20; DBMS_OUTPUT.PUT_LINE(v_num_empleados || ‘ Empleados ubicados en provisional’); EXCEPTION WHEN OTHERS THEN ROLLBACK; RAISE_APPLICATION_ERROR(-20000, ‘Error en la aplicación’); END;
Tema 10_ Introducción al PL-SQL
4
Definición de datos compatibles con SQL
• PL/SQL dispone de tipos de datoscompatibles con los tipos utilizados para las columnas de las tablas: NUMBER, VARCHAR2, DATE.. • Además dispone de otros tipos propios como BOOLEAN. • PL/SQL permite declarar una variable del mismo tipo que otra variable o que una columna de la tabla mediante el atributo %TYPE
Ej: NombreAct Empleados.Nombre%TYPE
• También se puede declarar una variable para guardar una fila completa de una tablamediante el atributo %ROWTYPE
Ej: Mifila Empleados%ROWTYPE
• Las declaraciones de los datos deben realizarse en la sección de declaraciones: DECLARE ….. BEGIN
Tema 10_ Introducción al PL-SQL
5
Estructuras de control
• Las estructuras de control en PL/SQL son las habituales en los lenguajes de programación estructurada:
Estructuras de control alternativas Alternativas simple Alternativadoble IF THEN Instrucciones; …. END IF; IF THEN Instrucciones; …; ELSE Instrucciones; ..; END IF; Alternativa múltiple IF THEN instrucciones; … ELSIF THEN instrucciones; ..; ELSIF THEN instrucciones; ..; ELSE instrucciones; ..; END IF; 6
Tema 10_ Introducción al PL-SQL
Estructuras de control
Estructuras de control repetitivas Mientras WHILE LOOP instrucciones; …. END LOOP; Para...
Regístrate para leer el documento completo.