|
PL/SQL ¿Qué es PL/SQL?
- Lenguaje de procesamiento procedimental.
- Implementado por Oracle.
- Dispone de estructuras de programación similares a las de la mayoría de los lenguajes de programación.
- Objetivo: Interactuar con la B.D.
PL/SQL Estructura Bloques Anónimos
- [DECLARE]
Define objetos PL/SQL que serán utilizados dentro del mismo bloque
- BEGIN
Sentencias Ejecutables
- [EXCEPTION]
Qué hacer si la acción ejecutada causa error
- END;
PL/SQL Estructura de Procedimiento
- PROCEDURE nombre IS
Sección Declarativa
- BEGIN
Sección Ejecutable
- [EXCEPTION]
Sección de Excepciones
- END;
PL/SQL Estructura de Función
- FUNCTION nombre RETURN tipo_dato IS
Sección Declarativa
- BEGIN
Sección Ejecutable
- [EXCEPTION]
Sección de Excepciones
- END;
PL/SQL Declaración de Variables
- Reglas para nombres:
- Dos variables pueden tener el mismo nombre, si están en bloques diferentes.
- El nombre de la variable (identificador) no debería ser el mismo que el de una columna de una tabla utilizada en el bloque.
PL/SQL Asignación e Inicialización de Variables
- Por defecto, todas las variables se inicializan a NULL.
PL/SQL Tipos de Variables
- ESCALARES
- BOOLEANAS
- COMPUESTAS
- LOB
- DE ENLACE (BIND)
PL/SQL Variables Escalares
- VARCHAR2 (longitud_máxima)
- NUMBER [(precisión, escala)]
- DATE
- CHAR [(longitud_máxima)]
- LONG
- LONG RAW
- BOOLEAN
- BINARY_INTEGER
PL/SQL Atributo %TYPE
- Permite declarar una variable basada en:
- Otras variables previamente declaradas
- La definición de una columna de la base de datos
- Preceder de %TYPE por:
- La tabla y la columna de la base de datos
- El nombre de la variable definida con anterioridad
- Ejemplo:
v_ename emp.ename%TYPE;
PL/SQL Variables BOOLEANAS
- A una variable Boolean sólo se le pueden asignar los valores: TRUE, FALSE o NULL.
- Estas variables están conectadas por los operadores lógicos AND, OR y NOT.
PL/SQL Tipos de Datos Compuestos
- Tipos:
- REGISTROS PL/SQL
- TABLAS PL/SQL
- Contienen componentes internos
PL/SQL Creación de un Registro
- Donde declaración_campo significa:
PL/SQL Ejemplo de Registro PL/SQL
- Declarar un registro para almacenar el número de empleado, nombre, trabajo y sueldo de un nuevo empleado:
- Los componentes individuales del registro se referenciarán de forma cualificada; en este ejemplo:
PL/SQL El Atributo %ROWTYPE
- Define un registro con la estructura de la tabla o vista de la B.D.
- Los campos del registro toman sus nombres y tipos de datos de las columnas de la vista o tabla.
- Ejemplo:
DECLARE registro_empleado emp%ROWTYPE;
PL/SQL Ventajas de %ROWTYPE
- El número y los tipos de datos de las columnas de la tabla pueden no ser conocidos.
- Simplifica la programación al no tener que definir explícitamente los campos y tipos del registro.
- Es útil para realizar recuperaciones de filas con la sentencia SELECT:
PL/SQL Tablas PL/SQL
- Cuentan con dos componentes:
- TIPO DE DATOS DE CLAVE PRIMARIA BINARY_INTEGER
- COLUMNA DE TIPO DE DATOS ESCALARES O DE REGISTRO.
- Aumentan dinámicamente porque no tienen restricciones.
- Se almacenan en memoria.
PL/SQL Creación de Tablas PL/SQL
PL/SQL Creación de Tablas PL/SQL
PL/SQL Variables LOB
- Permiten almacenar bloques de datos no estructurados, como pantallas de texto, imágenes gráficas, vídeo clips, y sonido, de hasta 4 Gb. de tamaño.
| CLOB | Character Large Object. Se utiliza para almacenar bloques grandes de datos de caracteres. |
| BLOB | Binary Large Object. Se utiliza para almacenar objetos binarios grandes en la B.D. |
| BFILE | Binary File. Se utiliza para almacenar objetos binarios grandes en archivos del sistema operativo, fuera de la B.D. |
| NCLOB | National Language Character Large Object. Se utiliza para almacenar en la B.D. bloques grandes de datos NCHAR de un byte único o multi-bytes de ancho fijo. |
PL/SQL Variables de Enlace (Bind)
- Son variables de SQL*Plus.
- Las pueden referenciar bloques de PL/SQL mediante el uso del ampersand (&).
- Ejemplo:
S.Q.L. Ejercicios
- Basados en las tablas emp y dept del usuario Scott de la database Oracle.
- Crear el modelo de datos necesario para representar la actividad de un Videoclub.
- Mostrar los nombres de los empleados del deptno 10, junto con los meses que llevan trabajando en la empresa.
- Extraer el nombre de empleado y su fecha de alta en la empresa con formato Dia ( letras) , mes ( letras ), año, horas, minutos y segundos.
- Mostrar el nº de empleado, job, nombre, así como la comisión. Si no tiene comisión, poner el texto ‘Sin Comisión’. La información debe de salir ordenada por nº de empleado en descendente.
- Nº de empleado con el salario mas alto.
- Nombre de deptno y Nombre de empleado que mas tarde entró en la empresa, para cada uno de los departamentos.
- Incrementar un 20% el salario de todos los empleados que no son de Bostón.
- Borrar los empleados cuyo nombre no comienza por A , que no son Analistas y que trabajan en New York.
- Nombre de empleado, suma de salario y comisión para los empleados cuyo salario es superior a la media de su departamento.
|