Skip to content

Secuencias, vistas y PL/SQL

Oracle se usa mucho con objetos de base de datos como secuencias, vistas, procedimientos, funciones y paquetes PL/SQL.

Secuencias

sql
CREATE SEQUENCE clientes_seq
START WITH 1
INCREMENT BY 1
NOCACHE;

Uso:

sql
INSERT INTO clientes (id, nombre, email)
VALUES (clientes_seq.NEXTVAL, 'Ana', 'ana@example.com');

Vistas

sql
CREATE OR REPLACE VIEW ventas_por_cliente AS
SELECT cliente_id, COUNT(*) AS pedidos, SUM(total) AS total
FROM pedidos
WHERE estado = 'PAGADO'
GROUP BY cliente_id;

Bloque PL/SQL

sql
BEGIN
  UPDATE pedidos
  SET estado = 'PAGADO'
  WHERE id = 10;

  COMMIT;
END;
/

Procedimiento

sql
CREATE OR REPLACE PROCEDURE marcar_pedido_pagado(p_pedido_id NUMBER) AS
BEGIN
  UPDATE pedidos
  SET estado = 'PAGADO'
  WHERE id = p_pedido_id;
END;
/

Buenas practicas

  • Usa paquetes para agrupar logica relacionada.
  • Manten procedimientos enfocados.
  • Versiona cambios de PL/SQL.
  • Documenta efectos secundarios.
  • Controla transacciones de forma clara.

Errores comunes

  • Poner demasiada logica de negocio en triggers.
  • Olvidar / al ejecutar bloques en ciertas herramientas.
  • No controlar excepciones.
  • Cambiar vistas sin revisar dependencias.
  • Usar secuencias esperando numeros sin huecos.