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.
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.
| Aspecto | SQL | PL/SQL |
|---|---|---|
| Naturaleza | Declarativo: describe qué datos se necesitan | Procedural: describe cómo procesarlos |
| Unidad de trabajo | Sentencias individuales | Bloques, procedimientos, packages |
| Control de flujo | No tiene | IF, LOOP, CASE, manejo de excepciones |
| Portabilidad | Relativamente estándar entre motores | Propietario 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.
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.
Preguntas frecuentes sobre PL/SQL
¿Qué es un procedimiento almacenado en 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?
¿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?
¿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?
¿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?
¿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.
Términos relacionados
- Oracle E-Business SuiteOracle E-Business Suite (EBS) es el ERP on-premise clásico de Oracle: una suite integrada de finanzas, compras, manufactura e inventario que corre en servidores propios de la empresa. Muchas compañías grandes de LatAm lo usan hace décadas y hoy evalúan cómo modernizarlo hacia la nube.
- Oracle Fusion CloudOracle Fusion Cloud es la suite SaaS de aplicaciones empresariales de Oracle: ERP, cadena de suministro (SCM), capital humano (HCM) y experiencia de cliente (CX) sobre una sola plataforma cloud, con actualizaciones trimestrales. Es el destino de migración a la nube para clientes de E-Business Suite y JD Edwards.
- Oracle IntegrationOracle Integration (OIC) es el iPaaS de Oracle: una plataforma en la nube que conecta aplicaciones Oracle (Fusion Cloud, NetSuite, E-Business Suite) y de terceros como Salesforce mediante adaptadores prearmados, mapeo visual de datos y orquestación de procesos, sin construir cada integración desde cero.
- ApexApex es el lenguaje de programación propietario de Salesforce, orientado a objetos y similar a Java, que corre en sus servidores. Permite agregar lógica de negocio personalizada (triggers, clases e integraciones) cuando las herramientas declarativas como Flow no alcanzan.
- SuiteScriptSuiteScript es el lenguaje de personalización de NetSuite, basado en JavaScript. Permite crear lógica de negocio a medida dentro del ERP: scripts de servidor y de cliente, workflows y endpoints propios, bajo límites de gobernanza que protegen el rendimiento de la plataforma multitenant.
- JD EdwardsJD Edwards es un ERP de Oracle con dos líneas: EnterpriseOne y World. Llegó a Oracle en 2005 con la compra de PeopleSoft y sigue vigente en manufactura, distribución, agroindustria y construcción en LatAm. Se moderniza integrándolo, llevando su infraestructura a la nube o migrando a Oracle Fusion Cloud.
Preguntas relacionadas
- ¿NetSuite es lo mismo que Oracle?en NetSuite
- ¿Qué diferencia hay entre OCI y Oracle Fusion Cloud?en OCI (Oracle Cloud Infrastructure)
- ¿Qué significa que Oracle Autonomous Database sea autónoma?en Oracle Autonomous Database
- ¿Qué diferencia hay entre Oracle CX y Siebel?en Oracle CX
- ¿Oracle EPM reemplaza al ERP?en Oracle EPM
- ¿Qué diferencia hay entre Oracle HCM Cloud y un sistema de nómina local?en Oracle HCM Cloud
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 OracleAhora 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.