GlosarioTecnología

PL/SQL

Término 208 de 314 · Tecnología

En una frase

PL/SQL es el lenguaje procedural de Oracle Database. Extiende SQL con variables, control de flujo y manejo de errores, y permite escribir procedimientos almacenados, funciones, packages y triggers que corren dentro de la base de datos, donde muchas empresas con ERP Oracle concentran lógica de negocio crítica.

Definición

PL/SQL (Procedural Language/SQL) es el lenguaje de programación procedural de Oracle Database. Extiende el SQL estándar con variables, condicionales, bucles, cursores y manejo de excepciones, y permite escribir lógica completa que se ejecuta dentro del motor de la base de datos como procedimientos almacenados, funciones, packages y triggers.

Su rasgo distintivo es dónde vive: el código PL/SQL se compila y ejecuta en el servidor de la base, al lado de los datos. Por eso, en empresas que llevan años operando con productos como Oracle E-Business Suite o con sistemas a medida sobre Oracle, es habitual que décadas de reglas de negocio (cálculo de precios, validaciones fiscales, cierres contables, interfaces entre módulos) estén implementadas en PL/SQL y no en la capa de aplicación.

Esa concentración de lógica tiene una consecuencia práctica: no se ve desde afuera. Un proyecto de integración o de migración que solo releva pantallas y servicios se pierde una parte central del sistema; entender qué hace el PL/SQL existente es parte obligatoria del diagnóstico antes de tocar un entorno Oracle con historia.

Qué se construye con PL/SQL

El código PL/SQL no vive en los archivos de una aplicación: se guarda y compila dentro de la propia base de datos, como objetos con nombre que cualquier proceso autorizado puede invocar. Los principales son:

  • Procedimientos almacenados: rutinas que encapsulan una operación completa, por ejemplo registrar un cobro, actualizar el saldo del cliente y dejar el asiento contable en una sola transacción.
  • Funciones: devuelven un valor y pueden invocarse desde consultas SQL; son típicas para cálculos reutilizables como impuestos, tipos de cambio o reglas de redondeo.
  • Packages: agrupan procedimientos y funciones relacionados en un módulo con interfaz pública y cuerpo privado; son la unidad natural para organizar lógica de negocio grande.
  • Triggers: se disparan solos ante un INSERT, UPDATE o DELETE sobre una tabla; se usan para auditoría, validaciones y sincronización entre tablas.

PL/SQL y SQL

No compiten: se complementan. SQL resuelve el acceso a los datos y PL/SQL le agrega la capacidad de programar procesos completos alrededor de esas consultas.

AspectoSQLPL/SQL
NaturalezaDeclarativo: describe qué datos se necesitanProcedural: describe cómo procesarlos
Unidad de trabajoSentencias individualesBloques, procedimientos, packages
Control de flujoNo tieneIF, LOOP, CASE, manejo de excepciones
PortabilidadRelativamente estándar entre motoresPropietario de Oracle

La última fila es la que pesa en los proyectos: una consulta SQL razonablemente estándar se puede mover entre motores con ajustes acotados, mientras que el código PL/SQL hay que convertirlo o reescribirlo si la empresa cambia de plataforma de datos.

Por qué la lógica vive en la base

Durante décadas, ejecutar la lógica junto a los datos fue la forma más eficiente y segura de construir sistemas transaccionales: sin viajes por la red, con commit y rollback nativos y con un único lugar donde auditar qué pasó. Productos como Oracle E-Business Suite llevan esa filosofía en su arquitectura, y los equipos internos la extendieron durante años con personalizaciones propias. El resultado típico en empresas de LatAm con ERP Oracle es que el corazón operativo, con su facturación, stock, liquidaciones e interfaces contables, es código PL/SQL acumulado que rara vez está documentado por completo y que suelen entender unas pocas personas.

Impacto en integraciones y migraciones

La lógica en la base es invisible desde afuera: un proceso ETL que escribe sobre una tabla puede disparar triggers sin saberlo, y una interfaz que esquiva la aplicación puede saltear validaciones que solo existen en un package. Por eso, antes de diseñar una integración con un sistema Oracle conviene relevar el PL/SQL involucrado y documentar qué hace cada objeto. En una migración a un ERP en la nube como Oracle Fusion Cloud el trabajo es mayor: la lógica existente se clasifica pieza por pieza para decidir qué queda cubierto por el estándar del nuevo producto, qué se reescribe como extensión o sobre una capa de integración y qué se retira porque el proceso cambió. Hacer ese relevamiento al principio del proyecto, y no cuando aparecen los errores, marca la diferencia entre una migración previsible y una llena de sorpresas.

En la práctica

Lista de precios que vive en packages PL/SQL

Una distribuidora mayorista argentina opera desde los años noventa con un sistema propio sobre Oracle Database: los precios por canal, los descuentos por volumen y el cálculo de impuestos viven en packages PL/SQL escritos por distintos equipos a lo largo del tiempo. Al lanzar un e-commerce B2B, el proyecto arranca relevando esa lógica para exponerla como servicios, en lugar de duplicar las reglas de precios en la aplicación nueva y arriesgar diferencias entre lo que cotiza el vendedor y lo que muestra la web.

Inventario de triggers antes de migrar el ERP

Un laboratorio farmacéutico mexicano planifica pasar de su ERP Oracle on premise a un ERP en la nube. El relevamiento inicial encuentra triggers y procedimientos que validan lotes, vencimientos y liberación de producto, además de interfaces contables escritas como jobs PL/SQL. En lugar de migrar a ciegas, el equipo clasifica cada objeto: lo que cubre el estándar del nuevo ERP se descarta, las validaciones regulatorias se reimplementan como extensiones y las interfaces se rehacen sobre una capa de integración moderna.

Compartir
Preguntas frecuentes

Preguntas frecuentes sobre PL/SQL

¿Qué es un procedimiento almacenado en PL/SQL?

Es una rutina con nombre escrita en PL/SQL que queda guardada y compilada dentro de Oracle Database. Encapsula una operación completa, por ejemplo registrar una factura, actualizar el stock y dejar la traza de auditoría en una sola transacción, y se invoca desde aplicaciones, jobs o integraciones. La ventaja es que la lógica corre junto a los datos con transacciones nativas; la contra es que queda fuera de la vista de quien solo analiza la capa de aplicación.

¿PL/SQL funciona fuera de Oracle Database?

No. PL/SQL es un lenguaje propietario de Oracle y se ejecuta dentro de sus motores: Oracle Database on premise, la base de datos en OCI y Oracle Autonomous Database. Otros motores tienen lenguajes procedurales con conceptos parecidos, como T-SQL en SQL Server o PL/pgSQL en PostgreSQL, pero la sintaxis es incompatible: cambiar de motor implica convertir o reescribir el código existente, no copiarlo.

¿Conviene escribir lógica de negocio nueva en PL/SQL?

Depende del contexto. Si el sistema central es un ERP Oracle y la lógica es intensiva en datos, como cierres, liquidaciones masivas o validaciones transaccionales, sigue siendo una opción eficiente y madura. Si tu empresa avanza hacia una arquitectura cloud, conviene evaluar ubicar la lógica nueva en capas más visibles y desacopladas para no agrandar la deuda que después encarece las migraciones.

¿Qué pasa con el código PL/SQL al migrar a un ERP en la nube?

No se migra tal cual: en un ERP SaaS no instalás packages propios dentro de la base del proveedor. La lógica existente se releva y se decide caso por caso: qué cubre el estándar del nuevo producto, qué se reescribe como extensión o como flujo en una plataforma como Oracle Integration Cloud, y qué se retira porque el proceso de negocio cambió con la migración.

¿Cuál es el equivalente de PL/SQL en Salesforce?

El rol equivalente lo cumple Apex, el lenguaje con el que se programa lógica de negocio dentro de la plataforma Salesforce. La diferencia principal es arquitectónica: PL/SQL corre dentro de la base de datos con los recursos del servidor, mientras que Apex corre en una plataforma multitenant y está sujeto a límites de gobernador que regulan el consumo compartido. En ambos casos la lógica vive del lado de la plataforma y no en una capa de aplicación separada.

Lo llevamos a tu Oracle

Implementación, integración y soporte de Oracle para empresas de LatAm, conectado con el CRM, WhatsApp y el resto de tu stack. Contanos qué módulos tenés hoy.

El glosario completo (más de 290 definiciones de IA, Salesforce y datos) en un PDF con hipervínculos.

Seguí explorando

Términos relacionados

Del glosario

Preguntas relacionadas

Lo resolvemos con

Oracle

Implementación, integración y soporte de Oracle para empresas de LatAm, conectado con el CRM y el resto del stack.

Así lo resuelve Oracle
La suite completa

Ahora que sabés qué es, mirá cómo se resuelve

Cinco productos de IA que trabajan sobre el CRM que ya usás. No reemplazan tu sistema: le agregan la capa que hoy hacés a mano.