PL/SQL

PL/SQL (Procedural Language/Structured Query Language) es un lenguaje de programación incrustado en Oracle.​
PL/SQL soportará todas las consultas, ya que la manipulación de datos que se usa es la misma que en SQL, incluyendo nuevas características:
El lenguaje PL/SQL está incorporado en:
En un entorno de base de datos los programadores pueden construir bloques PL/SQL para utilizarlos como procedimientos o funciones, o bien pueden escribir estos bloques como parte de scripts SQL*Plus.
Los programas o paquetes de PL/SQL se pueden almacenar en la base de datos como otro objeto, y todos los usuarios que estén autorizados tienen acceso a estos paquetes. Los programas se ejecutan en el servidor para ahorrar recursos a los clientes.
A continuación se muestra un listado de los tipos de datos disponibles en Oracle / PLSQL. Hemos tratado de diferenciar los tipos de datos entre las versiones de Oracle 8i y Oracle 9i.
Un identificador es un nombre que se le pone a un objeto que interviene en un programa, que puede ser variable, constante, procedimientos, excepciones, cursores... Debe tener un máximo de 30 caracteres que empiece siempre por una letra, y puede contener letras, números, los símbolos $, #, _, y mayúsculas y minúsculas indiferentemente. Los identificadores no pueden ser palabras reservadas (SELECT, INSERT, DELETE, UPDATE, DROP).
Las variables son nombres para procesar los elementos de los datos. Declaración:
Ejemplos:
También se puede definir una variable a partir de un campo mediante los atributos %TYPE y %ROWTYPE, con esto damos el tipo y longitud a la variable de otra variable u objeto ya definido.
%TYPE es la que se utiliza normalmente, %ROWTYPE es para claves de registro. El NOT NULL y el valor inicial no se heredan, solo el tipo de dato y longitud de ese dato.
Por ejemplo:
Las constantes son como las variables pero no puede modificarse su valor. Se declaran de la siguiente manera:
Por ejemplo, el IVA es un valor fijo, y para declararlo lo haríamos de la siguiente manera: por ejemplo,
Bloque es la unidad de estructura básica en los programas PL/SQL. Supone una mejora en el rendimiento, pues se envían los bloques completos al servidor para ser procesados en lugar de enviar cada secuencia SQL.
Partes de un bloque:
Forma de crear un bloque:
La barra "/" que va al final del bloque es opcional y se utiliza para verificar la sintaxis del bloque antes de que este sea ejecutado.
La sintaxis es la siguiente
Para borrar un procedimiento almacenado de la base de datos
Para utilizar un procedimiento almacenado de la base de datos
Una función es un bloque de código PL/SQL que tiene las mismas características que un procedimiento almacenado. La diferencia estriba que una función devuelve un valor al retornar. Al devolver un valor puede ser llamada como parte de una expresión.
La sintaxis sería
Para borrar una función de la base de datos
Los procedimientos y funciones se pueden agrupar en unas estructuras llamadas Paquetes.
Se usan para agrupar procedimientos y funciones. Facilitan la descomposición modular y el mantenimiento.
Constan de dos partes: la especificación o prototipo y el cuerpo.
Un trigger o disparador se ejecuta ante un determinado evento de manera automática. Generalmente se utilizan para garantizar que una determinada acción siempre se realiza después de realizar una tarea determinada. Se debe tener cuidado con este tipo de estructuras puesto que un uso excesivo puede dar lugar a dependencias difíciles de mantener. Además se deben tener muy claros las restricciones de integridad para evitar problemas.
La sintaxis sería
A nivel de sentencia:
A nivel de registro:
Para eliminar un trigger: