Dominando PL/SQL: Conceptos Clave y Programación Avanzada en Bases de Datos
Clasificado en Informática
Escrito el en español con un tamaño de 6,36 KB
Fundamentos Esenciales de PL/SQL
PL/SQL es un lenguaje de programación estructurado en bloques que se puede combinar con sentencias SQL.
Reglas y Sintaxis Básica de PL/SQL
A continuación, se detallan las normas fundamentales de PL/SQL:
- Las palabras clave, nombres de tabla, funciones, etc., no distinguen entre mayúsculas y minúsculas.
- Las variables, constantes y excepciones se definen en el bloque
DECLARE
. - Todas las instrucciones finalizan con punto y coma (
;
), a excepción de los encabezados de bloque. - Las instrucciones pueden ocupar varias líneas.
- Los comentarios se pueden añadir utilizando
/* ... */
para bloques multilínea o--
para una sola línea.
Comando por Consola
Para visualizar la salida de mensajes en la consola, se utiliza el siguiente comando y función:
SET SERVEROUTPUT ON;
DBMS_OUTPUT.PUT_LINE('Mensaje de ejemplo');
Variables y Constantes
Las variables y constantes se definen al principio del bloque (entre DECLARE
y BEGIN
) y su alcance está limitado al bloque donde se declaran (entre BEGIN
y END
).
Programación Orientada a Objetos en PL/SQL
Definición de Tipos de Objeto Personalizados
Para crear un nuevo tipo de objeto, como OB_PELICULA
, que contenga campos específicos, se utiliza la siguiente sintaxis:
CREATE OR REPLACE TYPE OB_PELICULA AS OBJECT (
ID NUMBER,
Nombre VARCHAR2(50),
Calificacion NUMBER,
Categoria VARCHAR2(100),
Duracion NUMBER,
Lanzamiento NUMBER
);
Métodos de Objeto (Procedimientos y Funciones)
Es posible añadir métodos (procedimientos o funciones) a la definición de un objeto. Estos métodos se declaran en la especificación del tipo de objeto y se implementan en el cuerpo (BODY
) del tipo.
Ejemplo de declaración de métodos:
MEMBER FUNCTION getID RETURN NUMBER
MEMBER FUNCTION getNombre RETURN VARCHAR2
- ... (y así con cada atributo)
MEMBER PROCEDURE toString
Para insertar registros en una tabla, se utiliza la sentencia INSERT
:
INSERT INTO "nombre_tabla" VALUES (valor1, valor2, ...);
Conceptos Avanzados y Estructuras de Datos en PL/SQL
Registro
Un registro es un conjunto de datos relacionados entre sí, agrupados en campos.
%TYPE
El atributo %TYPE
se utiliza para declarar una variable que heredará el tipo de dato de una columna de tabla existente.
%ROWTYPE
El atributo %ROWTYPE
indica que un registro coincide con la estructura de una fila completa de una tabla.
Arrays (VARRAY)
Los Arrays en PL/SQL son colecciones de elementos del mismo tipo, ordenados y accesibles mediante un índice. Se utiliza la expresión VARRAY
y requiere establecer una capacidad máxima.
Para añadir elementos a un array, se debe utilizar el método .EXTEND
, ya sea indicando la capacidad total o dentro de un bucle para cada iteración.
TYPE p_prueba IS VARRAY(100) OF prueba;
Disparadores o Triggers
Un disparador (o trigger) es un procedimiento que se ejecuta de manera automática al realizar una operación DML (INSERT
, UPDATE
, DELETE
) sobre la base de datos. Se pueden configurar para ejecutarse antes o después de una modificación.
Instancia
Una instancia es una representación única de una entidad particular dentro de una tabla. Cada instancia corresponde a un registro individual y contiene los valores específicos para cada atributo de esa entidad.
Parámetro SELF
El parámetro SELF
se utiliza para referirse al objeto actual dentro de una clase o método.
Sobrecarga de Métodos
La sobrecarga de métodos es una propiedad que permite que distintos métodos tengan el mismo nombre, siempre y cuando difieran en sus parámetros (número y/o tipo). Si se intenta definir métodos con la misma firma (mismos tipos y número de parámetros), incluso con nombres de parámetros distintos, se estaría cometiendo un error, ya que PL/SQL no soporta esta ambigüedad.
Constructores
Los constructores se utilizan para inicializar objetos personalizados al crear una instancia, asignando valores predeterminados a sus atributos.
Herencia
La herencia es una técnica que permite que un tipo de objeto herede atributos y propiedades de otro tipo de objeto, creando una jerarquía de clases o entidades relacionadas.
Método MAP
El método MAP
se utiliza para comparar objetos del mismo tipo. Únicamente puede existir un método de tipo MAP
por cada tipo de objeto que se cree. Para implementarlo, primero hay que añadir la definición del método a la especificación del objeto y después implementar el método en el cuerpo (BODY
) correspondiente.
Tabla Anidada
Una Tabla Anidada no tiene un límite máximo de tamaño, sino que posee un tamaño dinámico. Similar a una Lista
en Java, permite añadir elementos de forma flexible. Al igual que con los arrays, se debe utilizar el método .EXTEND
para añadir elementos.
Subprogramas en PL/SQL: Procedimientos y Funciones
Procedimientos (PROCEDURE)
Un procedimiento es un bloque de código con un fin específico, al que se le asigna un nombre para su reutilización en otras partes del programa. Puede tener o no parámetros de entrada.
Funciones (FUNCTION, RETURN)
Las funciones son subprogramas muy similares a los procedimientos, pero se utilizan para realizar operaciones y cálculos que devuelven un valor determinado. A diferencia de los procedimientos, las funciones devuelven un valor, lo que se indica con la cláusula RETURN
y el tipo de dato correspondiente. Al igual que los procedimientos, pueden tener o no parámetros de entrada.