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.

Entradas relacionadas: