Forma a tu equipo sin coste para tu empresa. Este curso de PL/SQL es hasta 100% bonificable a través de FUNDAE.
Potencia las competencias clave de tus profesionales.
Accede a una formación práctica, actualizada y orientada a resultados.
Prepara a tu equipo para los retos del entorno laboral actual.
Nos ocupamos de la gestión con FUNDAE si tu empresa lo necesita.
A medida
Formación en PL/SQL a medida
Descubre el mejor curso de PL/SQL para empresas con nuestra Aula Virtual Personalizada:
Sesiones en vivo por videoconferencia.
Temario totalmente personalizado.
Fechas y horarios adaptados a tu empresa.
Acceso a grabaciones.
Aprende practicando
Totalmente Práctico y Aplicable
Formación diseñada para que apliques cada concepto en situaciones reales de tu trabajo, con enfoque práctico y útil desde el primer momento.
Aprendizaje 100% práctico, enfocado en lo que realmente necesitas.
Casos reales y ejercicios adaptados a tu entorno profesional.
Aplica cada conocimiento directamente en tus tareas diarias.
Mejora tu rendimiento y el de tu equipo desde el primer día.
¿Por qué un curso en PL/SQL?
Alinea desarrollo, DBA, datos y arquitectura
Despliega formación A Medida en PL/SQL para Oracle para tu equipo, optimiza procedimientos y rendimiento, tutorizada y bonificable por FUNDAE. Pide información.
Una plataforma practica, con IA integrada y pensada para que mejores desarrollando. Se adapta a tu ritmo, te corrige al instante y te muestra tu progreso real.
Correccion magica
Feedback inteligente
Aprende de cada acierto y fallo con explicaciones claras
Pensado para quienes deben dominar PL/SQL en su día a día
Desarrolladores backend
Este curso encaja con desarrolladores que trabajan con aplicaciones empresariales conectadas a Oracle y necesitan comprender mejor la lógica que vive dentro de la base de datos. Aprenderán a diseñar procedimientos, funciones, paquetes y APIs PL/SQL mantenibles, evitando que la lógica crítica quede dispersa entre aplicación, consultas improvisadas y scripts difíciles de controlar.
Desarrolladores SQL y analistas técnicos
Los perfiles que ya trabajan con SQL podrán avanzar hacia un uso profesional de PL/SQL para automatizar procesos, encapsular reglas, validar datos, crear procesos batch, gestionar errores y construir componentes reutilizables. La formación les permite pasar de consultas sueltas a soluciones robustas dentro del entorno Oracle.
DBAs con responsabilidad de desarrollo
Los administradores de bases de datos que también participan en soporte, optimización, despliegues o mantenimiento de código podrán reforzar su capacidad para revisar PL/SQL, detectar problemas de rendimiento, controlar privilegios, analizar bloqueos, depurar errores y acompañar a equipos de desarrollo con criterio técnico.
Equipos de datos y BI
Los equipos que preparan información para reporting, ETL, data marts, procesos de calidad o integración con herramientas analíticas podrán usar PL/SQL para transformar datos, validar reglas, ejecutar cargas controladas y crear procesos trazables. El curso les ayuda a escribir lógica eficiente y segura sobre volúmenes importantes.
Arquitectos de software y responsables técnicos
Los perfiles de arquitectura podrán entender qué lógica conviene mantener en PL/SQL, qué debe vivir en la aplicación y cómo diseñar una frontera clara entre base de datos, servicios y consumidores. La formación aporta criterios sobre mantenibilidad, rendimiento, seguridad, testing, versionado y gobierno del código en Oracle.
Equipos de mantenimiento y modernización
Los equipos que heredan bases Oracle con procedimientos antiguos, paquetes grandes, triggers opacos o procesos batch críticos podrán aprender a diagnosticar, refactorizar y documentar código PL/SQL sin romper comportamiento productivo. El curso incluye estrategias de mejora gradual, pruebas y control de riesgos.
Proveedor con 16 años de experiencia en formación empresarial
Sobre
En Imagina Formación llevamos más de 16 años ayudando a profesionales y empresas a mejorar sus habilidades con formación práctica y totalmente adaptada a sus necesidades. Durante este tiempo, hemos formado a más de 480.000 personas y colaborado con más de 3.500 empresas, convirtiéndonos en un referente en el sector.
16
Años de liderazgo
+480.000
Alumnos formados en Imagina
¿Tienes dudas?
Resolvemos todas tus dudas sobre nuestra formación en PL/SQL
Explora las respuestas a las preguntas que guian a nuestra comunidad. Aqui encontraras claridad sobre como funciona todo, desde el acceso hasta los detalles de los cursos. Si buscas respuestas, este es el lugar para comenzar.
Parte desde fundamentos de PL/SQL, pero está orientado a un nivel profesional y corporativo. Se recomienda conocer SQL y conceptos básicos de bases de datos para aprovechar bien procedimientos, paquetes, cursores, rendimiento y seguridad.
Sí. El curso está actualizado tomando como referencia Oracle AI Database 26ai y la documentación vigente de PL/SQL Language Reference, que recoge fundamentos del lenguaje, paquetes, triggers, SQL dinámico y cambios actuales.
Sí. En entornos Oracle, PL/SQL sigue siendo clave para encapsular lógica cerca de los datos, procesos batch, validaciones, integraciones, seguridad y operaciones críticas. El curso también explica cuándo no conviene abusar de lógica en base de datos.
Sí. Se trabajan planes de ejecución, SQL embebido, bulk processing, cursores, funciones usadas desde SQL, bloqueos, procesos batch y criterios para elegir entre PL/SQL, SQL set-based o lógica de aplicación.
Sí. Los paquetes son una pieza central del temario. Se trabaja especificación, cuerpo, APIs internas, rutinas privadas, estado de paquete, versionado, permisos, pruebas y diseño modular.
Sí. El curso cubre triggers, pero con enfoque responsable. Se enseña cuándo usarlos, qué riesgos introducen, cómo probarlos, cómo documentarlos y cuándo conviene sustituirlos por alternativas más explícitas.
Sí. Se aborda `EXECUTE IMMEDIATE`, `DBMS_SQL`, variables enlazadas, validación de identificadores, riesgos de inyección SQL y criterios para decidir cuándo el SQL dinámico está justificado.
Sí. Se trabajan privilegios, grants, roles, `AUTHID DEFINER`, `AUTHID CURRENT_USER`, SQL dinámico seguro, auditoría, datos sensibles y modelos de acceso para aplicaciones.
Sí. El curso incluye pruebas mediante scripts, datos sintéticos, validación de resultados, pruebas de errores, permisos, rollback, integración en CI/CD y criterios de cobertura funcional.
Sí. Hay bloques específicos de diagnóstico, dependencias, objetos inválidos, refactorización, pruebas de caracterización, rendimiento, documentación y modernización gradual de código PL/SQL existente.
No. Es una formación corporativa práctica para desarrollo, datos, DBA y arquitectura. Puede reforzar conocimientos útiles de Oracle, pero no sustituye una preparación oficial de certificación.
Sí. Al tratarse de una formación corporativa en bases de datos, desarrollo PL/SQL, seguridad, rendimiento, datos y competencias digitales, puede plantearse como formación bonificable hasta el 100% a través de FUNDAE, según el crédito disponible y cumpliendo los requisitos administrativos aplicables.
Parte desde fundamentos de PL/SQL, pero está orientado a un nivel profesional y corporativo. Se recomienda conocer SQL y conceptos básicos de bases de datos para aprovechar bien procedimientos, paquetes, cursores, rendimiento y seguridad.
Sí. El curso está actualizado tomando como referencia Oracle AI Database 26ai y la documentación vigente de PL/SQL Language Reference, que recoge fundamentos del lenguaje, paquetes, triggers, SQL dinámico y cambios actuales.
Sí. En entornos Oracle, PL/SQL sigue siendo clave para encapsular lógica cerca de los datos, procesos batch, validaciones, integraciones, seguridad y operaciones críticas. El curso también explica cuándo no conviene abusar de lógica en base de datos.
Sí. Se trabajan planes de ejecución, SQL embebido, bulk processing, cursores, funciones usadas desde SQL, bloqueos, procesos batch y criterios para elegir entre PL/SQL, SQL set-based o lógica de aplicación.
Sí. Los paquetes son una pieza central del temario. Se trabaja especificación, cuerpo, APIs internas, rutinas privadas, estado de paquete, versionado, permisos, pruebas y diseño modular.
Sí. El curso cubre triggers, pero con enfoque responsable. Se enseña cuándo usarlos, qué riesgos introducen, cómo probarlos, cómo documentarlos y cuándo conviene sustituirlos por alternativas más explícitas.
Sí. Se aborda `EXECUTE IMMEDIATE`, `DBMS_SQL`, variables enlazadas, validación de identificadores, riesgos de inyección SQL y criterios para decidir cuándo el SQL dinámico está justificado.
Sí. Se trabajan privilegios, grants, roles, `AUTHID DEFINER`, `AUTHID CURRENT_USER`, SQL dinámico seguro, auditoría, datos sensibles y modelos de acceso para aplicaciones.
Sí. El curso incluye pruebas mediante scripts, datos sintéticos, validación de resultados, pruebas de errores, permisos, rollback, integración en CI/CD y criterios de cobertura funcional.
Sí. Hay bloques específicos de diagnóstico, dependencias, objetos inválidos, refactorización, pruebas de caracterización, rendimiento, documentación y modernización gradual de código PL/SQL existente.
No. Es una formación corporativa práctica para desarrollo, datos, DBA y arquitectura. Puede reforzar conocimientos útiles de Oracle, pero no sustituye una preparación oficial de certificación.
Sí. Al tratarse de una formación corporativa en bases de datos, desarrollo PL/SQL, seguridad, rendimiento, datos y competencias digitales, puede plantearse como formación bonificable hasta el 100% a través de FUNDAE, según el crédito disponible y cumpliendo los requisitos administrativos aplicables.
¿Qué es PL/SQL dentro del ecosistema Oracle y por qué combina SQL declarativo con estructuras procedimentales para resolver lógica compleja cerca de los datos?
¿Para qué sirve PL/SQL en una empresa cuando existen aplicaciones backend, ETL, herramientas BI y servicios que también pueden ejecutar lógica de negocio?
¿Qué diferencia hay entre SQL y PL/SQL, y por qué una consulta que recupera datos no cumple el mismo papel que un procedimiento con control de flujo, errores y transacciones?
¿Cuándo conviene usar PL/SQL para encapsular reglas, procesos batch, validaciones, APIs internas de base de datos o automatizaciones críticas?
¿Cuándo no conviene abusar de PL/SQL porque la lógica pertenece a la aplicación, al servicio de dominio, al pipeline de datos o a una capa de integración?
¿Qué tipos de objetos se crean habitualmente con PL/SQL: bloques anónimos, procedimientos, funciones, paquetes, triggers, tipos, cursores y jobs?
¿Cómo se relaciona PL/SQL con Oracle Database, Oracle AI Database 26ai, SQL Developer, SQLcl, aplicaciones empresariales y procesos de explotación?
¿Qué riesgos aparecen en proyectos PL/SQL mal gobernados: paquetes gigantes, triggers invisibles, lógica duplicada, permisos excesivos y errores difíciles de depurar?
¿Qué conocimientos previos necesita un equipo para trabajar PL/SQL con solvencia: SQL, modelo relacional, transacciones, permisos, índices y lectura de planes?
¿Qué criterios debe usar una empresa para decidir qué lógica vive en PL/SQL y qué lógica debe mantenerse fuera de la base de datos?
¿Qué es PL/SQL dentro del ecosistema Oracle y por qué combina SQL declarativo con estructuras procedimentales para resolver lógica compleja cerca de los datos?
¿Para qué sirve PL/SQL en una empresa cuando existen aplicaciones backend, ETL, herramientas BI y servicios que también pueden ejecutar lógica de negocio?
¿Qué diferencia hay entre SQL y PL/SQL, y por qué una consulta que recupera datos no cumple el mismo papel que un procedimiento con control de flujo, errores y transacciones?
¿Cuándo conviene usar PL/SQL para encapsular reglas, procesos batch, validaciones, APIs internas de base de datos o automatizaciones críticas?
¿Cuándo no conviene abusar de PL/SQL porque la lógica pertenece a la aplicación, al servicio de dominio, al pipeline de datos o a una capa de integración?
¿Qué tipos de objetos se crean habitualmente con PL/SQL: bloques anónimos, procedimientos, funciones, paquetes, triggers, tipos, cursores y jobs?
¿Cómo se relaciona PL/SQL con Oracle Database, Oracle AI Database 26ai, SQL Developer, SQLcl, aplicaciones empresariales y procesos de explotación?
¿Qué riesgos aparecen en proyectos PL/SQL mal gobernados: paquetes gigantes, triggers invisibles, lógica duplicada, permisos excesivos y errores difíciles de depurar?
¿Qué conocimientos previos necesita un equipo para trabajar PL/SQL con solvencia: SQL, modelo relacional, transacciones, permisos, índices y lectura de planes?
¿Qué criterios debe usar una empresa para decidir qué lógica vive en PL/SQL y qué lógica debe mantenerse fuera de la base de datos?
¿Qué es PL/SQL dentro del ecosistema Oracle y por qué combina SQL declarativo con estructuras procedimentales para resolver lógica compleja cerca de los datos?
¿Para qué sirve PL/SQL en una empresa cuando existen aplicaciones backend, ETL, herramientas BI y servicios que también pueden ejecutar lógica de negocio?
¿Qué diferencia hay entre SQL y PL/SQL, y por qué una consulta que recupera datos no cumple el mismo papel que un procedimiento con control de flujo, errores y transacciones?
¿Cuándo conviene usar PL/SQL para encapsular reglas, procesos batch, validaciones, APIs internas de base de datos o automatizaciones críticas?
¿Cuándo no conviene abusar de PL/SQL porque la lógica pertenece a la aplicación, al servicio de dominio, al pipeline de datos o a una capa de integración?
¿Qué tipos de objetos se crean habitualmente con PL/SQL: bloques anónimos, procedimientos, funciones, paquetes, triggers, tipos, cursores y jobs?
¿Cómo se relaciona PL/SQL con Oracle Database, Oracle AI Database 26ai, SQL Developer, SQLcl, aplicaciones empresariales y procesos de explotación?
¿Qué riesgos aparecen en proyectos PL/SQL mal gobernados: paquetes gigantes, triggers invisibles, lógica duplicada, permisos excesivos y errores difíciles de depurar?
¿Qué conocimientos previos necesita un equipo para trabajar PL/SQL con solvencia: SQL, modelo relacional, transacciones, permisos, índices y lectura de planes?
¿Qué criterios debe usar una empresa para decidir qué lógica vive en PL/SQL y qué lógica debe mantenerse fuera de la base de datos?
Tema 2: Entorno de trabajo Oracle para desarrollo PL/SQL
Preparar una conexión de desarrollo contra Oracle usando usuario, servicio, wallet, conexión local, cloud o entorno corporativo controlado.
Configurar Oracle SQL Developer, SQLcl o SQL Developer for VS Code para ejecutar scripts, compilar objetos, revisar errores y depurar código.
Diferenciar entornos de desarrollo, integración, preproducción y producción, evitando ejecutar pruebas destructivas sobre esquemas reales.
Organizar scripts PL/SQL en carpetas de repositorio separando DDL, DML, paquetes, datos de prueba, despliegues y rollback.
Validar permisos mínimos del usuario de laboratorio para crear objetos sin conceder privilegios innecesarios de administración.
Usar `SET SERVEROUTPUT ON`, salida de consola, logs de ejecución y herramientas del cliente para diagnosticar pruebas iniciales.
Crear un esquema de laboratorio con tablas, secuencias, constraints, vistas y datos sintéticos para practicar sin riesgos.
Comprender cómo se compilan y almacenan los objetos PL/SQL dentro de la base, y cómo se consultan errores de compilación.
Revisar diferencias entre ejecutar una sentencia, un script completo, un bloque anónimo y un objeto almacenado en Oracle.
Definir una convención de trabajo para que todo cambio PL/SQL quede versionado, revisado, probado y documentado.
Tema 3: Fundamentos del lenguaje PL/SQL
Construir bloques PL/SQL con secciones `DECLARE`, `BEGIN`, `EXCEPTION` y `END`, entendiendo qué responsabilidad tiene cada parte.
Declarar variables, constantes, tipos simples, tipos derivados y valores iniciales con nombres claros y propósito funcional.
Usar asignaciones, expresiones, operadores, conversiones y funciones integradas sin generar ambigüedad ni errores de tipo.
Trabajar con `%TYPE` y `%ROWTYPE` para vincular variables a columnas o filas, reduciendo problemas cuando cambia el modelo de datos.
Comprender alcance de variables, visibilidad, shadowing y duración dentro de bloques, subprogramas y paquetes.
Aplicar comentarios útiles para explicar reglas de negocio, decisiones no evidentes y restricciones operativas, no para repetir el código.
Escribir código con estilo consistente: indentación, nombres, separación de bloques, longitud de líneas y claridad de intención.
Evitar bloques anónimos enormes que mezclan validación, transformación, consultas, DML y manejo de errores sin estructura.
Probar fragmentos del lenguaje con ejemplos pequeños antes de incorporarlos a procedimientos o paquetes productivos.
Construir un bloque PL/SQL completo que declare variables, consulte datos, aplique una regla y gestione un error controlado.
Tema 4: Tipos de datos, variables y conversiones
Usar tipos escalares como `NUMBER`, `VARCHAR2`, `DATE`, `TIMESTAMP`, `BOOLEAN`, `CLOB` y `BLOB` según necesidades reales de negocio.
Diferenciar tipos SQL y tipos PL/SQL, entendiendo qué puede almacenarse en tablas, qué vive solo en memoria y qué limitaciones existen.
Aplicar `%TYPE` para evitar duplicar definiciones de longitud, precisión o escala de columnas en variables PL/SQL.
Usar `%ROWTYPE` para manejar filas completas cuando el caso lo justifica, sin abusar de estructuras demasiado amplias.
Gestionar conversiones explícitas entre texto, número y fecha para evitar errores dependientes de configuración regional o sesión.
Controlar valores nulos con cuidado, especialmente en comparaciones, asignaciones, concatenaciones y reglas de validación.
Usar subtipos y constantes para expresar mejor conceptos de negocio como estados, límites, códigos o configuraciones internas.
Evitar tipos demasiado genéricos que ocultan errores, como variables de texto para valores que deberían ser fechas, importes o identificadores.
Revisar impacto de precisión numérica, redondeos, fechas con zona horaria y datos grandes en procesos críticos.
Crear un módulo de ejemplo que valide tipos, conversiones, nulos y reglas de formato antes de insertar datos.
Tema 5: Control de flujo y estructuras condicionales
Aplicar `IF`, `ELSIF` y `ELSE` para modelar decisiones de negocio sin crear árboles condicionales imposibles de mantener.
Usar `CASE` en PL/SQL cuando mejora la legibilidad frente a condicionales repetitivos o comparaciones por estado.
Diseñar condiciones claras que separen validación previa, reglas de negocio, excepciones funcionales y flujos alternativos.
Evitar condicionales anidados excesivos mediante funciones auxiliares, retornos tempranos controlados o tablas de configuración.
Gestionar nulos en condiciones, recordando que una comparación con `NULL` no se comporta como una igualdad convencional.
Crear reglas de decisión basadas en estados, permisos, fechas, importes, prioridades o datos de configuración.
Documentar condiciones de negocio críticas cuando un cambio incorrecto puede afectar facturación, reporting o cumplimiento.
Probar cada rama condicional con datos representativos, incluyendo límites, valores nulos y estados no esperados.
Revisar impacto de mover condiciones entre SQL y PL/SQL, especialmente cuando afecta rendimiento o legibilidad.
Construir un bloque de decisión empresarial que clasifique operaciones y genere acciones distintas según reglas controladas.
Tema 6: Bucles, iteraciones y procesamiento de conjuntos
Usar `LOOP`, `WHILE LOOP` y `FOR LOOP` según el tipo de iteración, condición de salida y claridad del código.
Diferenciar procesamiento fila a fila de procesamiento basado en conjuntos, evitando bucles innecesarios cuando SQL puede resolver mejor el problema.
Recorrer resultados mediante cursores implícitos y explícitos sin crear lógica lenta o difícil de interrumpir.
Controlar condiciones de salida, contadores, límites y errores para evitar bucles infinitos o procesos batch bloqueados.
Aplicar bucles para tareas donde existe lógica procedimental real: validaciones complejas, llamadas controladas o acumulaciones específicas.
Evitar commits dentro de bucles sin estrategia, porque pueden romper consistencia, rollback y diagnóstico de errores.
Medir impacto de procesar miles o millones de filas con bucles antes de aceptar una solución aparentemente sencilla.
Sustituir bucles lentos por operaciones SQL set-based, `MERGE`, `INSERT INTO SELECT` o procesamiento masivo cuando corresponda.
Registrar progreso en procesos largos sin saturar logs ni afectar rendimiento de forma significativa.
Construir una comparación práctica entre un proceso fila a fila y una solución set-based equivalente.
Tema 7: SQL dentro de PL/SQL: consultas, DML y SELECT INTO
Ejecutar consultas `SELECT INTO` gestionando correctamente resultados únicos, ausencia de datos y exceso de filas.
Usar `INSERT`, `UPDATE`, `DELETE` y `MERGE` dentro de PL/SQL con control transaccional y criterios de seguridad.
Integrar variables PL/SQL en sentencias SQL evitando concatenaciones inseguras o conversiones implícitas peligrosas.
Gestionar `SQL%ROWCOUNT`, `SQL%FOUND`, `SQL%NOTFOUND` y `SQL%ISOPEN` para validar efectos de operaciones DML.
Diferenciar errores de datos esperados de errores técnicos que deben escalarse o registrarse.
Diseñar DML idempotente cuando el proceso puede reintentarse por fallos, integración o ejecución batch.
Evitar consultas dentro de bucles si pueden resolverse con joins, subconsultas, CTEs o procesamiento masivo.
Controlar bloqueos y concurrencia cuando se actualizan filas compartidas por varios procesos o usuarios.
Crear validaciones antes y después de DML para asegurar que se modifican las filas esperadas, ni más ni menos.
Construir un procedimiento que lea, valide y actualice datos manteniendo trazabilidad de filas afectadas.
Tema 8: Cursores implícitos, explícitos y cursor FOR LOOP
Comprender cuándo Oracle crea cursores implícitos y cómo PL/SQL permite consultar su estado tras sentencias SQL.
Crear cursores explícitos cuando se necesita controlar consulta, apertura, fetch, cierre y procesamiento de resultados.
Usar cursor `FOR LOOP` para simplificar iteraciones sobre consultas cuando no se requiere control manual del cursor.
Diseñar cursores parametrizados para reutilizar consultas con criterios claros sin duplicar bloques similares.
Evitar cursores que esconden consultas pesadas, sin filtros o con joins costosos dentro de procesos batch.
Gestionar cierre correcto de cursores en caso de error, especialmente cuando se usan cursores explícitos manuales.
Analizar cuándo un cursor es aceptable y cuándo conviene una operación SQL set-based o procesamiento masivo.
Combinar cursores con registros, colecciones o bulk operations cuando el volumen exige optimización.
Probar cursores con datasets pequeños y grandes para detectar problemas de rendimiento antes de producción.
Construir un proceso con cursor parametrizado, control de errores, logging y medición de filas procesadas.
Tema 9: Registros, colecciones y estructuras en memoria
Crear registros PL/SQL para agrupar datos relacionados y mejorar legibilidad en procesos con múltiples valores.
Usar associative arrays, nested tables y varrays según necesidad de indexación, densidad, persistencia y procesamiento.
Diseñar colecciones para almacenar resultados intermedios, listas de identificadores, errores, validaciones o datos de entrada.
Evitar colecciones enormes en memoria sin medir consumo, especialmente en procesos batch con grandes volúmenes.
Recorrer colecciones con métodos adecuados como `COUNT`, `FIRST`, `LAST`, `NEXT`, `EXISTS`, `DELETE` y otros métodos disponibles.
Gestionar colecciones dispersas y nulas sin provocar errores por índices inexistentes o estructuras no inicializadas.
Usar colecciones como puente para bulk processing, validaciones por lote y operaciones eficientes contra tablas.
Definir tipos en paquetes cuando varias rutinas necesitan compartir estructuras de datos coherentes.
Probar colecciones con casos vacíos, un solo elemento, elementos eliminados y volúmenes más altos.
Construir un proceso que cargue datos en colección, valide reglas y genere un resumen de errores.
Tema 10: Bulk processing: BULK COLLECT y FORALL
Usar `BULK COLLECT` para traer múltiples filas a colecciones reduciendo cambios de contexto entre SQL y PL/SQL.
Aplicar `FORALL` para ejecutar DML masivo de forma más eficiente que iterar fila a fila con sentencias individuales.
Definir límites de lote con `LIMIT` para equilibrar rendimiento, memoria y control operativo.
Gestionar errores parciales con `SAVE EXCEPTIONS`, registrando qué filas fallan y permitiendo continuar el lote cuando procede.
Comparar rendimiento entre procesamiento row-by-row, bulk collect y operaciones set-based para elegir la solución adecuada.
Evitar bulk processing cuando una única sentencia SQL puede resolver todo de forma más simple y eficiente.
Diseñar estructuras de colección alineadas con columnas, claves, estados y mensajes de error de la operación.
Controlar commits por lote solo cuando existe una estrategia clara de recuperación, idempotencia y trazabilidad.
Medir filas procesadas, errores, duración, consumo de memoria y bloqueos durante operaciones masivas.
Construir una carga masiva con `BULK COLLECT`, `FORALL`, control de errores y reporte de incidencias.
Tema 11: Procedimientos almacenados
Crear procedimientos para encapsular acciones de negocio que modifican datos, lanzan procesos o coordinan varias operaciones.
Diseñar parámetros `IN`, `OUT` e `IN OUT` con intención clara, evitando interfaces confusas o efectos secundarios inesperados.
Separar procedimientos públicos de procedimientos internos cuando una API PL/SQL necesita ocultar detalles de implementación.
Validar entradas al inicio del procedimiento para fallar de forma controlada antes de modificar datos.
Gestionar transacciones con criterio, evitando que cada procedimiento haga commit sin respetar el flujo superior de la aplicación.
Documentar contrato del procedimiento: propósito, parámetros, errores esperados, efectos sobre datos y permisos requeridos.
Diseñar procedimientos idempotentes cuando pueden ser llamados varias veces por reintentos o integraciones.
Evitar procedimientos gigantes que mezclan carga, validación, transformación, auditoría y reporting sin modularidad.
Probar procedimientos con escenarios de éxito, error, datos límite, permisos y concurrencia.
Construir un procedimiento empresarial completo con validación, DML, errores, logging y pruebas de ejecución.
Tema 12: Funciones PL/SQL y uso desde SQL
Crear funciones para devolver valores calculados, estados, transformaciones o resultados reutilizables dentro del código PL/SQL.
Diferenciar funciones puras, funciones con acceso a datos y funciones con efectos secundarios, evitando diseños peligrosos.
Usar funciones desde SQL solo cuando su comportamiento, coste y determinismo están bien entendidos.
Evitar funciones que ejecutan consultas complejas por cada fila de una consulta grande, porque pueden degradar mucho el rendimiento.
Aplicar `DETERMINISTIC` solo cuando realmente se cumple la condición, sin usarlo como optimización decorativa.
Diseñar funciones pequeñas y testables para reglas de negocio estables como clasificación, normalización o cálculo.
Gestionar excepciones dentro de funciones sin ocultar errores críticos mediante retornos silenciosos.
Documentar cuándo una función puede usarse desde SQL, desde PL/SQL o solo internamente dentro de un paquete.
Medir impacto de funciones en planes de ejecución, cardinalidad, índices y consultas analíticas.
Construir una biblioteca de funciones reutilizables con pruebas, ejemplos y límites de uso.
Tema 13: Paquetes PL/SQL: especificación, cuerpo y APIs internas
Diseñar paquetes como unidad principal de modularidad en PL/SQL, separando contrato público e implementación interna.
Crear especificaciones de paquete limpias, exponiendo solo tipos, constantes, procedimientos y funciones que otros módulos necesitan.
Implementar cuerpos de paquete con rutinas privadas, variables internas, helpers y lógica encapsulada.
Organizar paquetes por dominio funcional, evitando paquetes utilitarios gigantes donde cabe cualquier cosa.
Controlar estado de paquete cuando se usan variables globales, entendiendo riesgos en sesiones, concurrencia y mantenimiento.
Diseñar APIs PL/SQL internas para que aplicaciones y jobs llamen a contratos estables en lugar de manipular tablas directamente.
Versionar cambios de paquetes con compatibilidad hacia atrás cuando existen consumidores externos o aplicaciones dependientes.
Documentar cada operación pública del paquete con contrato, parámetros, errores, transacción y ejemplos de uso.
Probar paquetes mediante scripts automatizados, escenarios funcionales y validación de permisos.
Construir un paquete empresarial con especificación pública, cuerpo privado, tipos, constantes, logging y pruebas.
Tema 14: Excepciones y gestión profesional de errores
Diferenciar excepciones predefinidas, excepciones definidas por usuario y errores técnicos propagados por Oracle.
Gestionar errores esperados como ausencia de datos, duplicados, validaciones fallidas o estados no permitidos.
Usar `RAISE`, `RAISE_APPLICATION_ERROR` y propagación de excepciones sin perder contexto de diagnóstico.
Evitar handlers genéricos `WHEN OTHERS THEN NULL`, porque ocultan fallos y provocan corrupción silenciosa de procesos.
Registrar errores con información suficiente: módulo, operación, clave de negocio, usuario, timestamp, mensaje y stack cuando procede.
Diseñar códigos de error funcionales estables para que aplicaciones consumidoras puedan reaccionar de forma controlada.
Separar errores recuperables, errores de validación, errores de integración y errores críticos que deben abortar la transacción.
Evitar exponer detalles internos sensibles en mensajes de error devueltos a usuarios o aplicaciones externas.
Probar escenarios de error igual que escenarios de éxito, incluyendo datos inválidos, permisos insuficientes y fallos de dependencia.
Construir un framework sencillo de errores PL/SQL con códigos, mensajes, logging y propagación controlada.
Tema 15: Transacciones, commits, rollback y consistencia
Comprender cómo PL/SQL participa en transacciones Oracle y por qué el control de commit debe diseñarse cuidadosamente.
Diferenciar responsabilidades transaccionales entre aplicación, procedimiento, job batch y proceso autónomo.
Evitar commits dispersos dentro de procedimientos reutilizables cuando el llamador necesita controlar atomicidad completa.
Usar `SAVEPOINT` para recuperar parcialmente operaciones complejas cuando el caso de negocio lo justifica.
Diseñar procesos idempotentes que puedan reintentarse sin duplicar datos ni dejar estados inconsistentes.
Gestionar errores durante transacciones largas, evitando dejar bloqueos o cambios parciales sin trazabilidad.
Comprender implicaciones de transacciones autónomas y por qué deben reservarse para casos concretos como auditoría controlada.
Analizar consistencia entre varias tablas, restricciones, triggers, procedimientos y procesos concurrentes.
Probar rollback, reintentos, errores intermedios, duplicados y recuperación tras fallo.
Construir un proceso transaccional completo con validación, savepoints, rollback controlado y auditoría segura.
Tema 16: Triggers: uso responsable y riesgos
Crear triggers DML para reaccionar a `INSERT`, `UPDATE` y `DELETE` cuando existe una razón técnica o de negocio bien justificada.
Diferenciar triggers de fila, triggers de sentencia, timing `BEFORE` y `AFTER`, y su impacto en datos y rendimiento.
Evitar triggers que contienen lógica de negocio compleja e invisible para aplicaciones y equipos de soporte.
Diseñar triggers para auditoría, validaciones muy localizadas o mantenimiento de datos derivados cuando no hay alternativa mejor.
Controlar problemas de mutating table, recursividad, efectos secundarios y dificultad de depuración.
Documentar triggers activos sobre tablas críticas para que ningún proceso desconozca efectos automáticos al modificar datos.
Revisar rendimiento de triggers en cargas masivas, procesos batch y operaciones con muchas filas.
Gestionar errores en triggers sin generar mensajes opacos o abortos difíciles de interpretar.
Crear pruebas específicas para validar comportamiento de triggers ante operaciones válidas, inválidas y masivas.
Refactorizar un trigger con demasiada lógica hacia paquete PL/SQL, constraints, validación de aplicación o proceso explícito.
Tema 17: SQL dinámico con EXECUTE IMMEDIATE y DBMS_SQL
Usar SQL dinámico cuando la estructura de la sentencia realmente necesita construirse en tiempo de ejecución.
Aplicar `EXECUTE IMMEDIATE` para DDL, DML, consultas simples y llamadas dinámicas con variables enlazadas.
Diferenciar SQL dinámico necesario de SQL dinámico usado por comodidad y que introduce riesgos de seguridad.
Protegerse frente a inyección SQL usando bind variables, validación de identificadores y listas permitidas.
Usar `DBMS_SQL` cuando se necesita mayor control sobre columnas, tipos, parseo, descripción o sentencias altamente dinámicas.
Gestionar errores de compilación, parseo, permisos y ejecución que aparecen solo en tiempo de ejecución.
Evitar concatenar valores de usuario, nombres de tabla o fragmentos SQL sin validación estricta.
Diseñar utilidades de generación dinámica para mantenimiento, auditoría o administración sin abrir puertas peligrosas.
Probar SQL dinámico con entradas válidas, inválidas, maliciosas, nulas y límites de longitud.
Construir un procedimiento con SQL dinámico seguro para consultar o administrar objetos según reglas controladas.
Tema 18: Seguridad PL/SQL: permisos, roles, invoker rights y definer rights
Comprender cómo se evalúan permisos al ejecutar objetos PL/SQL y por qué los roles no siempre aplican dentro de código almacenado.
Diferenciar `AUTHID DEFINER` y `AUTHID CURRENT_USER`, entendiendo impacto en seguridad, reutilización y acceso a objetos.
Diseñar paquetes con mínimos privilegios para que las aplicaciones llamen a operaciones controladas sin acceso directo amplio a tablas.
Conceder permisos mediante `GRANT EXECUTE` sobre paquetes o procedimientos en lugar de conceder DML sobre tablas cuando procede.
Evitar que usuarios de aplicación tengan privilegios excesivos por comodidad de desarrollo.
Proteger código que accede a datos sensibles, operaciones administrativas, auditoría o integración con sistemas externos.
Revisar riesgo de SQL dinámico dentro de objetos con privilegios de definidor.
Documentar permisos requeridos por cada paquete, procedimiento, usuario técnico y aplicación consumidora.
Auditar grants, owners y dependencias para detectar accesos heredados o innecesarios.
Construir un modelo seguro donde una aplicación ejecuta operaciones PL/SQL sin manipular tablas críticas directamente.
Tema 19: Rendimiento PL/SQL y optimización de SQL embebido
Analizar que la mayor parte del rendimiento PL/SQL depende de las sentencias SQL ejecutadas, no solo del código procedimental.
Revisar consultas con planes de ejecución, índices, cardinalidad, filtros, joins, funciones y estadísticas.
Reducir cambios de contexto entre PL/SQL y SQL mediante operaciones set-based o bulk processing.
Evitar funciones PL/SQL llamadas fila a fila desde consultas masivas cuando degradan rendimiento de forma significativa.
Medir tiempos con herramientas y trazas adecuadas antes de optimizar por intuición.
Diseñar procesos batch que procesan por lotes, registran progreso y permiten reinicio controlado.
Controlar impacto de cursores, commits frecuentes, triggers, constraints y locks sobre operaciones masivas.
Revisar uso de hints solo cuando existe diagnóstico claro y no como parche permanente sin explicación.
Comparar alternativas de implementación: SQL puro, PL/SQL, bulk, materialized views, jobs o lógica de aplicación.
Optimizar un proceso PL/SQL lento partiendo de métricas, plan de ejecución, cambios medidos y validación funcional.
Tema 20: Concurrencia, bloqueos y consistencia en entornos multiusuario
Comprender cómo Oracle gestiona concurrencia, lecturas consistentes, locks, transacciones y aislamiento en operaciones reales.
Diseñar PL/SQL que actualiza datos compartidos sin provocar bloqueos largos, esperas excesivas o deadlocks.
Usar `SELECT FOR UPDATE` con criterio cuando se necesita bloquear filas para operaciones críticas.
Gestionar procesos concurrentes que compiten por colas, estados, registros pendientes o recursos compartidos.
Evitar commits tardíos en procesos interactivos que mantienen bloqueos mientras el usuario o aplicación espera.
Diseñar estrategias de reintento ante bloqueos o conflictos, diferenciando error temporal de error funcional.
Registrar bloqueos y tiempos de espera para diagnosticar incidencias productivas.
Validar escenarios de concurrencia con sesiones paralelas, operaciones repetidas y cambios simultáneos.
Revisar triggers, cursores y procesos batch que pueden amplificar bloqueos sin que sea evidente.
Construir una práctica de concurrencia donde dos procesos compiten por los mismos registros y se resuelve con control transaccional.
Tema 21: Paquetes estándar útiles: DBMS_OUTPUT, DBMS_APPLICATION_INFO y DBMS_SCHEDULER
Usar `DBMS_OUTPUT` como apoyo de desarrollo, entendiendo sus límites y por qué no debe ser el mecanismo principal de logging productivo.
Aplicar `DBMS_APPLICATION_INFO` para marcar módulo, acción y cliente, facilitando trazabilidad en sesiones y diagnósticos.
Crear jobs con `DBMS_SCHEDULER` para ejecutar procesos programados, cargas, mantenimiento o tareas periódicas controladas.
Diseñar calendarios, ventanas, programas y jobs con nombres claros, ownership y documentación operativa.
Gestionar errores de jobs, reintentos, logs, estado, ejecución manual y desactivación controlada.
Evitar procesos programados sin owner, sin alertas, sin logging y sin procedimiento de recuperación.
Integrar jobs PL/SQL con procesos de datos, cierres contables, actualizaciones nocturnas o sincronizaciones internas.
Revisar permisos necesarios para crear, ejecutar y administrar jobs sin conceder privilegios excesivos.
Monitorizar ejecución, duración, resultado y fallos de jobs mediante vistas del diccionario y herramientas disponibles.
Construir un job programado que ejecuta un paquete PL/SQL, registra progreso y gestiona errores.
Tema 22: Instrumentación, logging y observabilidad en PL/SQL
Diseñar logging productivo con tablas de auditoría, niveles, módulo, operación, usuario, clave de negocio y mensaje técnico.
Separar logging técnico, auditoría funcional, trazabilidad de procesos y evidencias de cumplimiento.
Usar identificadores de correlación para conectar llamadas de aplicación, procedimientos, jobs y procesos externos.
Evitar registrar datos personales, secretos, tokens, payloads completos o información sensible innecesaria.
Registrar inicio, fin, duración, filas procesadas, errores, warnings y resumen de resultados en procesos batch.
Diseñar logs que permitan reejecución, análisis de fallos y soporte sin revisar manualmente todo el código.
Controlar crecimiento de tablas de log mediante retención, particionado, limpieza o archivado.
Integrar instrumentación PL/SQL con herramientas de monitorización, vistas del diccionario y diagnóstico de Oracle.
Crear procedimientos auxiliares de logging reutilizables sin introducir dependencias circulares ni commits peligrosos.
Construir un sistema de instrumentación para procesos PL/SQL críticos con trazabilidad y retención controlada.
Tema 23: Depuración y diagnóstico de código PL/SQL
Interpretar errores de compilación, errores runtime, stack de llamadas, línea de fallo y mensajes Oracle relevantes.
Usar herramientas del cliente para compilar, ejecutar, depurar paso a paso, inspeccionar variables y revisar resultados.
Consultar vistas del diccionario para localizar objetos inválidos, dependencias, errores, código fuente y permisos.
Diagnosticar errores frecuentes: `NO_DATA_FOUND`, `TOO_MANY_ROWS`, violaciones de constraint, conversiones y problemas de permisos.
Reproducir fallos con datos mínimos, aislando la causa antes de modificar código productivo.
Crear scripts de diagnóstico que preparan contexto, ejecutan caso problemático y limpian datos de prueba.
Evitar arreglos especulativos que cambian varias piezas sin una hipótesis clara ni prueba de regresión.
Documentar causa raíz, impacto, corrección, pruebas y prevención tras resolver un error relevante.
Usar logging y `DBMS_APPLICATION_INFO` para complementar depuración en procesos largos o jobs no interactivos.
Resolver un caso práctico de bug PL/SQL desde error reportado hasta corrección validada.
Tema 24: Testing de PL/SQL y validación automatizada
Diseñar pruebas para procedimientos, funciones, paquetes, triggers y procesos batch usando datos controlados y verificaciones repetibles.
Crear scripts de prueba que preparan datos, ejecutan código, validan resultados y limpian el escenario.
Diferenciar pruebas unitarias de funciones puras, pruebas de integración sobre tablas reales y pruebas end-to-end de procesos completos.
Validar escenarios de éxito, errores esperados, permisos, datos límite, nulos, concurrencia y reintentos.
Usar frameworks o herramientas de testing PL/SQL cuando el equipo necesita suites automatizadas y reportes estructurados.
Integrar pruebas PL/SQL en pipelines CI/CD para evitar despliegues con objetos inválidos o regresiones críticas.
Crear datos sintéticos realistas que no dependan de información productiva ni de estados manuales del entorno.
Evitar pruebas frágiles que dependen del orden de ejecución, fecha actual no controlada o datos compartidos por varios escenarios.
Medir cobertura funcional de reglas críticas aunque no exista cobertura de código perfecta.
Construir una suite de pruebas para un paquete PL/SQL con validación de resultados, errores y rollback.
Tema 25: Integración de PL/SQL con aplicaciones .NET, Java y servicios
Diseñar APIs PL/SQL consumibles desde aplicaciones, evitando que cada cliente ejecute DML directo sobre tablas críticas.
Definir contratos estables para procedimientos y funciones llamados desde .NET, Java, Python, ETL o herramientas BI.
Gestionar parámetros, tipos, cursores de salida, errores funcionales y códigos de retorno de forma predecible.
Evitar acoplar la aplicación a detalles internos de tablas, secuencias, triggers o estructuras temporales.
Diseñar límites claros entre lógica de aplicación y lógica PL/SQL para reducir duplicidad y conflictos de responsabilidad.
Validar llamadas desde clientes externos con pruebas de integración y datos controlados.
Gestionar transacciones cuando aplicación y PL/SQL participan en la misma operación de negocio.
Documentar cada punto de entrada PL/SQL como contrato técnico: parámetros, permisos, errores, transacción y ejemplos.
Revisar rendimiento de llamadas repetitivas desde aplicaciones que podrían agruparse en operaciones batch o bulk.
Construir una integración de ejemplo donde una aplicación llama a un paquete PL/SQL para ejecutar una operación controlada.
Tema 26: PL/SQL para procesos batch, ETL y cargas de datos
Diseñar procesos batch que validan, transforman, cargan y consolidan datos con trazabilidad y capacidad de reinicio.
Crear tablas staging para separar datos recibidos, datos validados, errores y datos finalmente publicados.
Aplicar reglas de calidad antes de insertar información en tablas maestras o modelos de consumo.
Gestionar errores por fila, errores por lote y errores críticos diferenciando qué puede continuar y qué debe abortarse.
Usar bulk operations, `MERGE`, particionado lógico y control de commits para mejorar rendimiento sin perder trazabilidad.
Registrar métricas de carga: filas recibidas, procesadas, rechazadas, corregidas, actualizadas y duplicadas.
Diseñar procesos reejecutables que no duplican información ni dejan estados intermedios incoherentes.
Coordinar PL/SQL con herramientas ETL, orquestadores, jobs externos o pipelines de datos corporativos.
Validar datos con reglas configurables cuando las condiciones cambian por país, negocio, producto o cliente.
Construir un proceso de carga completo con staging, validación, errores, publicación, logging y resumen final.
Tema 27: PL/SQL en entornos de reporting, BI y explotación analítica
Diseñar vistas, funciones y procesos PL/SQL que preparan datos para reporting sin comprometer rendimiento transaccional.
Evitar lógica pesada en consultas de BI que se ejecutan muchas veces y afectan a usuarios operativos.
Crear procesos de preagregación, snapshots, tablas resumen o materialización cuando el consumo analítico lo requiere.
Gestionar calendarios de actualización, ventanas de carga, cierres, periodos y disponibilidad de datos.
Controlar permisos para que herramientas BI accedan a vistas o esquemas de consumo, no a tablas internas sensibles.
Documentar reglas de negocio usadas en indicadores, métricas, cálculos y transformaciones PL/SQL.
Evitar duplicar fórmulas entre PL/SQL, herramientas BI y aplicaciones sin un criterio de ownership claro.
Revisar rendimiento de funciones y vistas utilizadas por informes recurrentes.
Crear validaciones entre datos origen, datos transformados y datos publicados para reporting.
Construir un proceso PL/SQL que prepara una tabla de indicadores con auditoría y validación de consistencia.
Tema 28: Dependencias, diccionario de datos y objetos inválidos
Consultar vistas del diccionario para conocer objetos, columnas, constraints, dependencias, grants, errores e información del esquema.
Analizar dependencias entre paquetes, vistas, tablas, funciones y triggers antes de modificar objetos críticos.
Detectar objetos inválidos y entender por qué se invalidan tras cambios de estructura, permisos o compilación.
Crear scripts para recompilar objetos, revisar errores y generar reportes de estado del esquema.
Evitar cambios de tabla que rompen paquetes, vistas o aplicaciones consumidoras sin análisis previo.
Documentar dependencias externas cuando un paquete PL/SQL es llamado por aplicaciones, jobs, ETL o herramientas BI.
Usar el diccionario como fuente de auditoría técnica, no solo como herramienta de consulta manual.
Revisar grants y owners para detectar dependencias de seguridad que podrían romper despliegues.
Crear reportes de impacto antes de desplegar cambios en tipos, tablas, columnas o paquetes públicos.
Construir un análisis de dependencias sobre un esquema de laboratorio y proponer un plan seguro de cambio.
Tema 29: Versionado, despliegue y CI/CD de código PL/SQL
Organizar código PL/SQL en repositorios Git con scripts reproducibles, orden de despliegue y documentación de cambios.
Separar creación de objetos, cambios incrementales, datos maestros, rollback, pruebas y scripts de validación.
Definir convenciones de nombres de archivos para paquetes, funciones, procedimientos, triggers, grants y pruebas.
Evitar cambios manuales directos en producción que no quedan reflejados en repositorio ni pueden reproducirse.
Diseñar pipelines que compilan objetos, ejecutan pruebas, revisan errores y publican reportes antes de liberar cambios.
Gestionar despliegues por entornos con variables, esquemas, grants y datos de configuración separados.
Crear scripts idempotentes cuando sea posible, especialmente para grants, sin ocultar errores reales de despliegue.
Documentar releases PL/SQL con objetos afectados, riesgos, pruebas, rollback y ventanas de ejecución.
Coordinar despliegues PL/SQL con cambios de aplicación, contratos, versiones y dependencias externas.
Construir un flujo CI/CD de laboratorio para desplegar un paquete PL/SQL, ejecutar pruebas y validar objetos.
Tema 30: Calidad de código, estándares y revisión de PL/SQL
Definir estándares de naming para variables, constantes, cursores, paquetes, procedimientos, funciones, errores y tablas auxiliares.
Revisar legibilidad, modularidad, tamaño de rutinas, duplicación, manejo de errores, transacciones y acoplamiento.
Crear checklist de revisión para cambios PL/SQL: permisos, rendimiento, seguridad, pruebas, transacción y logging.
Evitar código comentado, scripts sin owner, lógica duplicada y nombres que no expresan intención de negocio.
Diseñar paquetes pequeños y cohesionados en lugar de módulos enormes difíciles de probar y desplegar.
Aplicar revisiones de rendimiento a consultas críticas antes de aceptar cambios en procesos batch o reporting.
Revisar seguridad de SQL dinámico, privilegios, grants, errores expuestos y logs con datos sensibles.
Establecer Definition of Done para objetos PL/SQL: compila, prueba, documenta, registra, controla errores y respeta estándares.
Usar herramientas de análisis, formateo o revisión cuando la organización las tenga aprobadas.
Construir una guía de calidad PL/SQL para un equipo corporativo con ejemplos correctos e incorrectos.
Tema 31: Refactorización y modernización de PL/SQL legacy
Auditar código PL/SQL existente para detectar paquetes gigantes, duplicidad, lógica muerta, SQL lento y errores silenciados.
Crear pruebas de caracterización antes de modificar procedimientos críticos cuyo comportamiento no está documentado.
Separar rutinas internas, extraer funciones auxiliares y reducir bloques largos sin cambiar contrato público.
Sustituir cursores fila a fila por SQL set-based o bulk processing cuando la mejora sea clara y medible.
Reordenar manejo de errores para que los fallos se registren y propaguen de forma controlada.
Documentar paquetes legacy con propósito, entradas, salidas, dependencias, errores, jobs y consumidores.
Eliminar dependencias innecesarias entre paquetes, triggers y scripts que dificultan despliegues.
Modernizar código por fases pequeñas, con validación después de cada cambio y rollback preparado.
Priorizar refactorización según riesgo, frecuencia de cambio, incidencias, rendimiento y criticidad de negocio.
Ejecutar una refactorización guiada de un paquete PL/SQL legacy con pruebas, métricas y documentación.
Tema 32: PL/SQL y nuevas capacidades de Oracle AI Database
Comprender que PL/SQL evoluciona junto a Oracle Database y que las nuevas versiones pueden incorporar tipos, cláusulas y capacidades adicionales.
Revisar el uso del tipo `VECTOR` en PL/SQL cuando la base trabaja con capacidades de AI Vector Search y operaciones relacionadas.
Analizar cuándo una aplicación PL/SQL puede necesitar interactuar con datos vectoriales, embeddings o funcionalidades de IA dentro de Oracle.
Revisar la cláusula `RESETTABLE` para paquetes cuando el estado de paquete puede descartarse durante reinstanciación sin afectar al funcionamiento esperado.
Evaluar impacto de nuevas capacidades sobre compatibilidad, despliegues, soporte y estándares internos de desarrollo.
Evitar introducir funcionalidades recientes sin confirmar versión exacta de base, compatibilidad del entorno y política corporativa.
Documentar qué features están permitidas por versión, entorno y tipo de aplicación.
Crear pruebas específicas para código que usa capacidades nuevas, especialmente cuando afecta tipos, paquetes o estado de sesión.
Diseñar una estrategia de adopción gradual para features recientes sin romper sistemas legacy.
Construir una prueba controlada con una capacidad actual de PL/SQL en Oracle AI Database, documentando límites y requisitos.
Tema 33: Seguridad de datos, auditoría y cumplimiento en PL/SQL
Aplicar principios de mínimo privilegio en paquetes, procedimientos, funciones y usuarios técnicos que ejecutan lógica PL/SQL.
Diseñar auditoría funcional para acciones críticas: altas, bajas, modificaciones, aprobaciones, cambios de permisos y procesos batch.
Evitar registrar datos personales o sensibles en tablas de log, mensajes de error, trazas o salidas de depuración.
Usar controles de validación y autorización dentro de paquetes cuando una operación no debe depender solo de la aplicación cliente.
Revisar implicaciones de cumplimiento cuando PL/SQL transforma, exporta, anonimiza o consolida datos regulados.
Gestionar seudonimización, anonimización o enmascaramiento desde procesos PL/SQL cuando existe un caso aprobado.
Controlar acceso a código fuente, grants de ejecución, cambios de owner y despliegues sobre paquetes sensibles.
Diseñar evidencias de auditoría que permitan reconstruir quién ejecutó qué, cuándo, sobre qué datos y con qué resultado.
Revisar procedimientos administrativos que podrían modificar grandes volúmenes de datos sin confirmación, logging o rollback.
Construir un paquete de operación sensible con permisos mínimos, auditoría, errores seguros y validación de entrada.
Tema 34: Proyecto final integrador: plataforma PL/SQL empresarial para Oracle
Diseñar un esquema Oracle de laboratorio con tablas, constraints, secuencias, vistas, datos sintéticos, usuarios y permisos controlados.
Crear un paquete PL/SQL principal que actúe como API interna para operaciones de negocio, ocultando acceso directo a tablas críticas.
Implementar procedimientos de alta, actualización, validación, consulta y cierre de proceso con control transaccional.
Incorporar funciones reutilizables para reglas de negocio, normalización, clasificación, cálculo y validación de datos.
Usar cursores, colecciones, `BULK COLLECT` y `FORALL` en un proceso batch con control de errores por fila.
Añadir gestión profesional de excepciones con códigos funcionales, logging, trazabilidad y mensajes seguros.
Configurar permisos mediante grants de ejecución, usuarios de aplicación y separación entre owner de objetos y consumidor.
Crear pruebas automatizadas o scripts de validación que cubran éxito, errores, permisos, datos límite y rollback.
Preparar scripts de despliegue versionados con creación, actualización, grants, pruebas, rollback y validación de objetos inválidos.
Presentar el proyecto con documentación técnica, contratos del paquete, modelo de permisos, métricas de rendimiento y plan de mantenimiento.
Forma a tu equipo sin coste para tu empresa. Este curso de PL/SQL es hasta 100% bonificable a través de FUNDAE.
Potencia las competencias clave de tus profesionales.
Accede a una formación práctica, actualizada y orientada a resultados.
Prepara a tu equipo para los retos del entorno laboral actual.
Nos ocupamos de la gestión con FUNDAE si tu empresa lo necesita.
A medida
Formación en PL/SQL a medida
Descubre el mejor curso de PL/SQL para empresas con nuestra Aula Virtual Personalizada:
Sesiones en vivo por videoconferencia.
Temario totalmente personalizado.
Fechas y horarios adaptados a tu empresa.
Acceso a grabaciones.
Aprende practicando
Totalmente Práctico y Aplicable
Formación diseñada para que apliques cada concepto en situaciones reales de tu trabajo, con enfoque práctico y útil desde el primer momento.
Aprendizaje 100% práctico, enfocado en lo que realmente necesitas.
Casos reales y ejercicios adaptados a tu entorno profesional.
Aplica cada conocimiento directamente en tus tareas diarias.
Mejora tu rendimiento y el de tu equipo desde el primer día.
¿Por qué un curso en PL/SQL?
Alinea desarrollo, DBA, datos y arquitectura
Despliega formación A Medida en PL/SQL para Oracle para tu equipo, optimiza procedimientos y rendimiento, tutorizada y bonificable por FUNDAE. Pide información.
Una plataforma practica, con IA integrada y pensada para que mejores desarrollando. Se adapta a tu ritmo, te corrige al instante y te muestra tu progreso real.
Correccion magica
Feedback inteligente
Aprende de cada acierto y fallo con explicaciones claras
¿Qué es PL/SQL dentro del ecosistema Oracle y por qué combina SQL declarativo con estructuras procedimentales para resolver lógica compleja cerca de los datos?
¿Para qué sirve PL/SQL en una empresa cuando existen aplicaciones backend, ETL, herramientas BI y servicios que también pueden ejecutar lógica de negocio?
¿Qué diferencia hay entre SQL y PL/SQL, y por qué una consulta que recupera datos no cumple el mismo papel que un procedimiento con control de flujo, errores y transacciones?
¿Cuándo conviene usar PL/SQL para encapsular reglas, procesos batch, validaciones, APIs internas de base de datos o automatizaciones críticas?
¿Cuándo no conviene abusar de PL/SQL porque la lógica pertenece a la aplicación, al servicio de dominio, al pipeline de datos o a una capa de integración?
¿Qué tipos de objetos se crean habitualmente con PL/SQL: bloques anónimos, procedimientos, funciones, paquetes, triggers, tipos, cursores y jobs?
¿Cómo se relaciona PL/SQL con Oracle Database, Oracle AI Database 26ai, SQL Developer, SQLcl, aplicaciones empresariales y procesos de explotación?
¿Qué riesgos aparecen en proyectos PL/SQL mal gobernados: paquetes gigantes, triggers invisibles, lógica duplicada, permisos excesivos y errores difíciles de depurar?
¿Qué conocimientos previos necesita un equipo para trabajar PL/SQL con solvencia: SQL, modelo relacional, transacciones, permisos, índices y lectura de planes?
¿Qué criterios debe usar una empresa para decidir qué lógica vive en PL/SQL y qué lógica debe mantenerse fuera de la base de datos?
¿Qué es PL/SQL dentro del ecosistema Oracle y por qué combina SQL declarativo con estructuras procedimentales para resolver lógica compleja cerca de los datos?
¿Para qué sirve PL/SQL en una empresa cuando existen aplicaciones backend, ETL, herramientas BI y servicios que también pueden ejecutar lógica de negocio?
¿Qué diferencia hay entre SQL y PL/SQL, y por qué una consulta que recupera datos no cumple el mismo papel que un procedimiento con control de flujo, errores y transacciones?
¿Cuándo conviene usar PL/SQL para encapsular reglas, procesos batch, validaciones, APIs internas de base de datos o automatizaciones críticas?
¿Cuándo no conviene abusar de PL/SQL porque la lógica pertenece a la aplicación, al servicio de dominio, al pipeline de datos o a una capa de integración?
¿Qué tipos de objetos se crean habitualmente con PL/SQL: bloques anónimos, procedimientos, funciones, paquetes, triggers, tipos, cursores y jobs?
¿Cómo se relaciona PL/SQL con Oracle Database, Oracle AI Database 26ai, SQL Developer, SQLcl, aplicaciones empresariales y procesos de explotación?
¿Qué riesgos aparecen en proyectos PL/SQL mal gobernados: paquetes gigantes, triggers invisibles, lógica duplicada, permisos excesivos y errores difíciles de depurar?
¿Qué conocimientos previos necesita un equipo para trabajar PL/SQL con solvencia: SQL, modelo relacional, transacciones, permisos, índices y lectura de planes?
¿Qué criterios debe usar una empresa para decidir qué lógica vive en PL/SQL y qué lógica debe mantenerse fuera de la base de datos?
¿Qué es PL/SQL dentro del ecosistema Oracle y por qué combina SQL declarativo con estructuras procedimentales para resolver lógica compleja cerca de los datos?
¿Para qué sirve PL/SQL en una empresa cuando existen aplicaciones backend, ETL, herramientas BI y servicios que también pueden ejecutar lógica de negocio?
¿Qué diferencia hay entre SQL y PL/SQL, y por qué una consulta que recupera datos no cumple el mismo papel que un procedimiento con control de flujo, errores y transacciones?
¿Cuándo conviene usar PL/SQL para encapsular reglas, procesos batch, validaciones, APIs internas de base de datos o automatizaciones críticas?
¿Cuándo no conviene abusar de PL/SQL porque la lógica pertenece a la aplicación, al servicio de dominio, al pipeline de datos o a una capa de integración?
¿Qué tipos de objetos se crean habitualmente con PL/SQL: bloques anónimos, procedimientos, funciones, paquetes, triggers, tipos, cursores y jobs?
¿Cómo se relaciona PL/SQL con Oracle Database, Oracle AI Database 26ai, SQL Developer, SQLcl, aplicaciones empresariales y procesos de explotación?
¿Qué riesgos aparecen en proyectos PL/SQL mal gobernados: paquetes gigantes, triggers invisibles, lógica duplicada, permisos excesivos y errores difíciles de depurar?
¿Qué conocimientos previos necesita un equipo para trabajar PL/SQL con solvencia: SQL, modelo relacional, transacciones, permisos, índices y lectura de planes?
¿Qué criterios debe usar una empresa para decidir qué lógica vive en PL/SQL y qué lógica debe mantenerse fuera de la base de datos?
Tema 2: Entorno de trabajo Oracle para desarrollo PL/SQL
Preparar una conexión de desarrollo contra Oracle usando usuario, servicio, wallet, conexión local, cloud o entorno corporativo controlado.
Configurar Oracle SQL Developer, SQLcl o SQL Developer for VS Code para ejecutar scripts, compilar objetos, revisar errores y depurar código.
Diferenciar entornos de desarrollo, integración, preproducción y producción, evitando ejecutar pruebas destructivas sobre esquemas reales.
Organizar scripts PL/SQL en carpetas de repositorio separando DDL, DML, paquetes, datos de prueba, despliegues y rollback.
Validar permisos mínimos del usuario de laboratorio para crear objetos sin conceder privilegios innecesarios de administración.
Usar `SET SERVEROUTPUT ON`, salida de consola, logs de ejecución y herramientas del cliente para diagnosticar pruebas iniciales.
Crear un esquema de laboratorio con tablas, secuencias, constraints, vistas y datos sintéticos para practicar sin riesgos.
Comprender cómo se compilan y almacenan los objetos PL/SQL dentro de la base, y cómo se consultan errores de compilación.
Revisar diferencias entre ejecutar una sentencia, un script completo, un bloque anónimo y un objeto almacenado en Oracle.
Definir una convención de trabajo para que todo cambio PL/SQL quede versionado, revisado, probado y documentado.
Tema 3: Fundamentos del lenguaje PL/SQL
Construir bloques PL/SQL con secciones `DECLARE`, `BEGIN`, `EXCEPTION` y `END`, entendiendo qué responsabilidad tiene cada parte.
Declarar variables, constantes, tipos simples, tipos derivados y valores iniciales con nombres claros y propósito funcional.
Usar asignaciones, expresiones, operadores, conversiones y funciones integradas sin generar ambigüedad ni errores de tipo.
Trabajar con `%TYPE` y `%ROWTYPE` para vincular variables a columnas o filas, reduciendo problemas cuando cambia el modelo de datos.
Comprender alcance de variables, visibilidad, shadowing y duración dentro de bloques, subprogramas y paquetes.
Aplicar comentarios útiles para explicar reglas de negocio, decisiones no evidentes y restricciones operativas, no para repetir el código.
Escribir código con estilo consistente: indentación, nombres, separación de bloques, longitud de líneas y claridad de intención.
Evitar bloques anónimos enormes que mezclan validación, transformación, consultas, DML y manejo de errores sin estructura.
Probar fragmentos del lenguaje con ejemplos pequeños antes de incorporarlos a procedimientos o paquetes productivos.
Construir un bloque PL/SQL completo que declare variables, consulte datos, aplique una regla y gestione un error controlado.
Tema 4: Tipos de datos, variables y conversiones
Usar tipos escalares como `NUMBER`, `VARCHAR2`, `DATE`, `TIMESTAMP`, `BOOLEAN`, `CLOB` y `BLOB` según necesidades reales de negocio.
Diferenciar tipos SQL y tipos PL/SQL, entendiendo qué puede almacenarse en tablas, qué vive solo en memoria y qué limitaciones existen.
Aplicar `%TYPE` para evitar duplicar definiciones de longitud, precisión o escala de columnas en variables PL/SQL.
Usar `%ROWTYPE` para manejar filas completas cuando el caso lo justifica, sin abusar de estructuras demasiado amplias.
Gestionar conversiones explícitas entre texto, número y fecha para evitar errores dependientes de configuración regional o sesión.
Controlar valores nulos con cuidado, especialmente en comparaciones, asignaciones, concatenaciones y reglas de validación.
Usar subtipos y constantes para expresar mejor conceptos de negocio como estados, límites, códigos o configuraciones internas.
Evitar tipos demasiado genéricos que ocultan errores, como variables de texto para valores que deberían ser fechas, importes o identificadores.
Revisar impacto de precisión numérica, redondeos, fechas con zona horaria y datos grandes en procesos críticos.
Crear un módulo de ejemplo que valide tipos, conversiones, nulos y reglas de formato antes de insertar datos.
Tema 5: Control de flujo y estructuras condicionales
Aplicar `IF`, `ELSIF` y `ELSE` para modelar decisiones de negocio sin crear árboles condicionales imposibles de mantener.
Usar `CASE` en PL/SQL cuando mejora la legibilidad frente a condicionales repetitivos o comparaciones por estado.
Diseñar condiciones claras que separen validación previa, reglas de negocio, excepciones funcionales y flujos alternativos.
Evitar condicionales anidados excesivos mediante funciones auxiliares, retornos tempranos controlados o tablas de configuración.
Gestionar nulos en condiciones, recordando que una comparación con `NULL` no se comporta como una igualdad convencional.
Crear reglas de decisión basadas en estados, permisos, fechas, importes, prioridades o datos de configuración.
Documentar condiciones de negocio críticas cuando un cambio incorrecto puede afectar facturación, reporting o cumplimiento.
Probar cada rama condicional con datos representativos, incluyendo límites, valores nulos y estados no esperados.
Revisar impacto de mover condiciones entre SQL y PL/SQL, especialmente cuando afecta rendimiento o legibilidad.
Construir un bloque de decisión empresarial que clasifique operaciones y genere acciones distintas según reglas controladas.
Tema 6: Bucles, iteraciones y procesamiento de conjuntos
Usar `LOOP`, `WHILE LOOP` y `FOR LOOP` según el tipo de iteración, condición de salida y claridad del código.
Diferenciar procesamiento fila a fila de procesamiento basado en conjuntos, evitando bucles innecesarios cuando SQL puede resolver mejor el problema.
Recorrer resultados mediante cursores implícitos y explícitos sin crear lógica lenta o difícil de interrumpir.
Controlar condiciones de salida, contadores, límites y errores para evitar bucles infinitos o procesos batch bloqueados.
Aplicar bucles para tareas donde existe lógica procedimental real: validaciones complejas, llamadas controladas o acumulaciones específicas.
Evitar commits dentro de bucles sin estrategia, porque pueden romper consistencia, rollback y diagnóstico de errores.
Medir impacto de procesar miles o millones de filas con bucles antes de aceptar una solución aparentemente sencilla.
Sustituir bucles lentos por operaciones SQL set-based, `MERGE`, `INSERT INTO SELECT` o procesamiento masivo cuando corresponda.
Registrar progreso en procesos largos sin saturar logs ni afectar rendimiento de forma significativa.
Construir una comparación práctica entre un proceso fila a fila y una solución set-based equivalente.
Tema 7: SQL dentro de PL/SQL: consultas, DML y SELECT INTO
Ejecutar consultas `SELECT INTO` gestionando correctamente resultados únicos, ausencia de datos y exceso de filas.
Usar `INSERT`, `UPDATE`, `DELETE` y `MERGE` dentro de PL/SQL con control transaccional y criterios de seguridad.
Integrar variables PL/SQL en sentencias SQL evitando concatenaciones inseguras o conversiones implícitas peligrosas.
Gestionar `SQL%ROWCOUNT`, `SQL%FOUND`, `SQL%NOTFOUND` y `SQL%ISOPEN` para validar efectos de operaciones DML.
Diferenciar errores de datos esperados de errores técnicos que deben escalarse o registrarse.
Diseñar DML idempotente cuando el proceso puede reintentarse por fallos, integración o ejecución batch.
Evitar consultas dentro de bucles si pueden resolverse con joins, subconsultas, CTEs o procesamiento masivo.
Controlar bloqueos y concurrencia cuando se actualizan filas compartidas por varios procesos o usuarios.
Crear validaciones antes y después de DML para asegurar que se modifican las filas esperadas, ni más ni menos.
Construir un procedimiento que lea, valide y actualice datos manteniendo trazabilidad de filas afectadas.
Tema 8: Cursores implícitos, explícitos y cursor FOR LOOP
Comprender cuándo Oracle crea cursores implícitos y cómo PL/SQL permite consultar su estado tras sentencias SQL.
Crear cursores explícitos cuando se necesita controlar consulta, apertura, fetch, cierre y procesamiento de resultados.
Usar cursor `FOR LOOP` para simplificar iteraciones sobre consultas cuando no se requiere control manual del cursor.
Diseñar cursores parametrizados para reutilizar consultas con criterios claros sin duplicar bloques similares.
Evitar cursores que esconden consultas pesadas, sin filtros o con joins costosos dentro de procesos batch.
Gestionar cierre correcto de cursores en caso de error, especialmente cuando se usan cursores explícitos manuales.
Analizar cuándo un cursor es aceptable y cuándo conviene una operación SQL set-based o procesamiento masivo.
Combinar cursores con registros, colecciones o bulk operations cuando el volumen exige optimización.
Probar cursores con datasets pequeños y grandes para detectar problemas de rendimiento antes de producción.
Construir un proceso con cursor parametrizado, control de errores, logging y medición de filas procesadas.
Tema 9: Registros, colecciones y estructuras en memoria
Crear registros PL/SQL para agrupar datos relacionados y mejorar legibilidad en procesos con múltiples valores.
Usar associative arrays, nested tables y varrays según necesidad de indexación, densidad, persistencia y procesamiento.
Diseñar colecciones para almacenar resultados intermedios, listas de identificadores, errores, validaciones o datos de entrada.
Evitar colecciones enormes en memoria sin medir consumo, especialmente en procesos batch con grandes volúmenes.
Recorrer colecciones con métodos adecuados como `COUNT`, `FIRST`, `LAST`, `NEXT`, `EXISTS`, `DELETE` y otros métodos disponibles.
Gestionar colecciones dispersas y nulas sin provocar errores por índices inexistentes o estructuras no inicializadas.
Usar colecciones como puente para bulk processing, validaciones por lote y operaciones eficientes contra tablas.
Definir tipos en paquetes cuando varias rutinas necesitan compartir estructuras de datos coherentes.
Probar colecciones con casos vacíos, un solo elemento, elementos eliminados y volúmenes más altos.
Construir un proceso que cargue datos en colección, valide reglas y genere un resumen de errores.
Tema 10: Bulk processing: BULK COLLECT y FORALL
Usar `BULK COLLECT` para traer múltiples filas a colecciones reduciendo cambios de contexto entre SQL y PL/SQL.
Aplicar `FORALL` para ejecutar DML masivo de forma más eficiente que iterar fila a fila con sentencias individuales.
Definir límites de lote con `LIMIT` para equilibrar rendimiento, memoria y control operativo.
Gestionar errores parciales con `SAVE EXCEPTIONS`, registrando qué filas fallan y permitiendo continuar el lote cuando procede.
Comparar rendimiento entre procesamiento row-by-row, bulk collect y operaciones set-based para elegir la solución adecuada.
Evitar bulk processing cuando una única sentencia SQL puede resolver todo de forma más simple y eficiente.
Diseñar estructuras de colección alineadas con columnas, claves, estados y mensajes de error de la operación.
Controlar commits por lote solo cuando existe una estrategia clara de recuperación, idempotencia y trazabilidad.
Medir filas procesadas, errores, duración, consumo de memoria y bloqueos durante operaciones masivas.
Construir una carga masiva con `BULK COLLECT`, `FORALL`, control de errores y reporte de incidencias.
Tema 11: Procedimientos almacenados
Crear procedimientos para encapsular acciones de negocio que modifican datos, lanzan procesos o coordinan varias operaciones.
Diseñar parámetros `IN`, `OUT` e `IN OUT` con intención clara, evitando interfaces confusas o efectos secundarios inesperados.
Separar procedimientos públicos de procedimientos internos cuando una API PL/SQL necesita ocultar detalles de implementación.
Validar entradas al inicio del procedimiento para fallar de forma controlada antes de modificar datos.
Gestionar transacciones con criterio, evitando que cada procedimiento haga commit sin respetar el flujo superior de la aplicación.
Documentar contrato del procedimiento: propósito, parámetros, errores esperados, efectos sobre datos y permisos requeridos.
Diseñar procedimientos idempotentes cuando pueden ser llamados varias veces por reintentos o integraciones.
Evitar procedimientos gigantes que mezclan carga, validación, transformación, auditoría y reporting sin modularidad.
Probar procedimientos con escenarios de éxito, error, datos límite, permisos y concurrencia.
Construir un procedimiento empresarial completo con validación, DML, errores, logging y pruebas de ejecución.
Tema 12: Funciones PL/SQL y uso desde SQL
Crear funciones para devolver valores calculados, estados, transformaciones o resultados reutilizables dentro del código PL/SQL.
Diferenciar funciones puras, funciones con acceso a datos y funciones con efectos secundarios, evitando diseños peligrosos.
Usar funciones desde SQL solo cuando su comportamiento, coste y determinismo están bien entendidos.
Evitar funciones que ejecutan consultas complejas por cada fila de una consulta grande, porque pueden degradar mucho el rendimiento.
Aplicar `DETERMINISTIC` solo cuando realmente se cumple la condición, sin usarlo como optimización decorativa.
Diseñar funciones pequeñas y testables para reglas de negocio estables como clasificación, normalización o cálculo.
Gestionar excepciones dentro de funciones sin ocultar errores críticos mediante retornos silenciosos.
Documentar cuándo una función puede usarse desde SQL, desde PL/SQL o solo internamente dentro de un paquete.
Medir impacto de funciones en planes de ejecución, cardinalidad, índices y consultas analíticas.
Construir una biblioteca de funciones reutilizables con pruebas, ejemplos y límites de uso.
Tema 13: Paquetes PL/SQL: especificación, cuerpo y APIs internas
Diseñar paquetes como unidad principal de modularidad en PL/SQL, separando contrato público e implementación interna.
Crear especificaciones de paquete limpias, exponiendo solo tipos, constantes, procedimientos y funciones que otros módulos necesitan.
Implementar cuerpos de paquete con rutinas privadas, variables internas, helpers y lógica encapsulada.
Organizar paquetes por dominio funcional, evitando paquetes utilitarios gigantes donde cabe cualquier cosa.
Controlar estado de paquete cuando se usan variables globales, entendiendo riesgos en sesiones, concurrencia y mantenimiento.
Diseñar APIs PL/SQL internas para que aplicaciones y jobs llamen a contratos estables en lugar de manipular tablas directamente.
Versionar cambios de paquetes con compatibilidad hacia atrás cuando existen consumidores externos o aplicaciones dependientes.
Documentar cada operación pública del paquete con contrato, parámetros, errores, transacción y ejemplos de uso.
Probar paquetes mediante scripts automatizados, escenarios funcionales y validación de permisos.
Construir un paquete empresarial con especificación pública, cuerpo privado, tipos, constantes, logging y pruebas.
Tema 14: Excepciones y gestión profesional de errores
Diferenciar excepciones predefinidas, excepciones definidas por usuario y errores técnicos propagados por Oracle.
Gestionar errores esperados como ausencia de datos, duplicados, validaciones fallidas o estados no permitidos.
Usar `RAISE`, `RAISE_APPLICATION_ERROR` y propagación de excepciones sin perder contexto de diagnóstico.
Evitar handlers genéricos `WHEN OTHERS THEN NULL`, porque ocultan fallos y provocan corrupción silenciosa de procesos.
Registrar errores con información suficiente: módulo, operación, clave de negocio, usuario, timestamp, mensaje y stack cuando procede.
Diseñar códigos de error funcionales estables para que aplicaciones consumidoras puedan reaccionar de forma controlada.
Separar errores recuperables, errores de validación, errores de integración y errores críticos que deben abortar la transacción.
Evitar exponer detalles internos sensibles en mensajes de error devueltos a usuarios o aplicaciones externas.
Probar escenarios de error igual que escenarios de éxito, incluyendo datos inválidos, permisos insuficientes y fallos de dependencia.
Construir un framework sencillo de errores PL/SQL con códigos, mensajes, logging y propagación controlada.
Tema 15: Transacciones, commits, rollback y consistencia
Comprender cómo PL/SQL participa en transacciones Oracle y por qué el control de commit debe diseñarse cuidadosamente.
Diferenciar responsabilidades transaccionales entre aplicación, procedimiento, job batch y proceso autónomo.
Evitar commits dispersos dentro de procedimientos reutilizables cuando el llamador necesita controlar atomicidad completa.
Usar `SAVEPOINT` para recuperar parcialmente operaciones complejas cuando el caso de negocio lo justifica.
Diseñar procesos idempotentes que puedan reintentarse sin duplicar datos ni dejar estados inconsistentes.
Gestionar errores durante transacciones largas, evitando dejar bloqueos o cambios parciales sin trazabilidad.
Comprender implicaciones de transacciones autónomas y por qué deben reservarse para casos concretos como auditoría controlada.
Analizar consistencia entre varias tablas, restricciones, triggers, procedimientos y procesos concurrentes.
Probar rollback, reintentos, errores intermedios, duplicados y recuperación tras fallo.
Construir un proceso transaccional completo con validación, savepoints, rollback controlado y auditoría segura.
Tema 16: Triggers: uso responsable y riesgos
Crear triggers DML para reaccionar a `INSERT`, `UPDATE` y `DELETE` cuando existe una razón técnica o de negocio bien justificada.
Diferenciar triggers de fila, triggers de sentencia, timing `BEFORE` y `AFTER`, y su impacto en datos y rendimiento.
Evitar triggers que contienen lógica de negocio compleja e invisible para aplicaciones y equipos de soporte.
Diseñar triggers para auditoría, validaciones muy localizadas o mantenimiento de datos derivados cuando no hay alternativa mejor.
Controlar problemas de mutating table, recursividad, efectos secundarios y dificultad de depuración.
Documentar triggers activos sobre tablas críticas para que ningún proceso desconozca efectos automáticos al modificar datos.
Revisar rendimiento de triggers en cargas masivas, procesos batch y operaciones con muchas filas.
Gestionar errores en triggers sin generar mensajes opacos o abortos difíciles de interpretar.
Crear pruebas específicas para validar comportamiento de triggers ante operaciones válidas, inválidas y masivas.
Refactorizar un trigger con demasiada lógica hacia paquete PL/SQL, constraints, validación de aplicación o proceso explícito.
Tema 17: SQL dinámico con EXECUTE IMMEDIATE y DBMS_SQL
Usar SQL dinámico cuando la estructura de la sentencia realmente necesita construirse en tiempo de ejecución.
Aplicar `EXECUTE IMMEDIATE` para DDL, DML, consultas simples y llamadas dinámicas con variables enlazadas.
Diferenciar SQL dinámico necesario de SQL dinámico usado por comodidad y que introduce riesgos de seguridad.
Protegerse frente a inyección SQL usando bind variables, validación de identificadores y listas permitidas.
Usar `DBMS_SQL` cuando se necesita mayor control sobre columnas, tipos, parseo, descripción o sentencias altamente dinámicas.
Gestionar errores de compilación, parseo, permisos y ejecución que aparecen solo en tiempo de ejecución.
Evitar concatenar valores de usuario, nombres de tabla o fragmentos SQL sin validación estricta.
Diseñar utilidades de generación dinámica para mantenimiento, auditoría o administración sin abrir puertas peligrosas.
Probar SQL dinámico con entradas válidas, inválidas, maliciosas, nulas y límites de longitud.
Construir un procedimiento con SQL dinámico seguro para consultar o administrar objetos según reglas controladas.
Tema 18: Seguridad PL/SQL: permisos, roles, invoker rights y definer rights
Comprender cómo se evalúan permisos al ejecutar objetos PL/SQL y por qué los roles no siempre aplican dentro de código almacenado.
Diferenciar `AUTHID DEFINER` y `AUTHID CURRENT_USER`, entendiendo impacto en seguridad, reutilización y acceso a objetos.
Diseñar paquetes con mínimos privilegios para que las aplicaciones llamen a operaciones controladas sin acceso directo amplio a tablas.
Conceder permisos mediante `GRANT EXECUTE` sobre paquetes o procedimientos en lugar de conceder DML sobre tablas cuando procede.
Evitar que usuarios de aplicación tengan privilegios excesivos por comodidad de desarrollo.
Proteger código que accede a datos sensibles, operaciones administrativas, auditoría o integración con sistemas externos.
Revisar riesgo de SQL dinámico dentro de objetos con privilegios de definidor.
Documentar permisos requeridos por cada paquete, procedimiento, usuario técnico y aplicación consumidora.
Auditar grants, owners y dependencias para detectar accesos heredados o innecesarios.
Construir un modelo seguro donde una aplicación ejecuta operaciones PL/SQL sin manipular tablas críticas directamente.
Tema 19: Rendimiento PL/SQL y optimización de SQL embebido
Analizar que la mayor parte del rendimiento PL/SQL depende de las sentencias SQL ejecutadas, no solo del código procedimental.
Revisar consultas con planes de ejecución, índices, cardinalidad, filtros, joins, funciones y estadísticas.
Reducir cambios de contexto entre PL/SQL y SQL mediante operaciones set-based o bulk processing.
Evitar funciones PL/SQL llamadas fila a fila desde consultas masivas cuando degradan rendimiento de forma significativa.
Medir tiempos con herramientas y trazas adecuadas antes de optimizar por intuición.
Diseñar procesos batch que procesan por lotes, registran progreso y permiten reinicio controlado.
Controlar impacto de cursores, commits frecuentes, triggers, constraints y locks sobre operaciones masivas.
Revisar uso de hints solo cuando existe diagnóstico claro y no como parche permanente sin explicación.
Comparar alternativas de implementación: SQL puro, PL/SQL, bulk, materialized views, jobs o lógica de aplicación.
Optimizar un proceso PL/SQL lento partiendo de métricas, plan de ejecución, cambios medidos y validación funcional.
Tema 20: Concurrencia, bloqueos y consistencia en entornos multiusuario
Comprender cómo Oracle gestiona concurrencia, lecturas consistentes, locks, transacciones y aislamiento en operaciones reales.
Diseñar PL/SQL que actualiza datos compartidos sin provocar bloqueos largos, esperas excesivas o deadlocks.
Usar `SELECT FOR UPDATE` con criterio cuando se necesita bloquear filas para operaciones críticas.
Gestionar procesos concurrentes que compiten por colas, estados, registros pendientes o recursos compartidos.
Evitar commits tardíos en procesos interactivos que mantienen bloqueos mientras el usuario o aplicación espera.
Diseñar estrategias de reintento ante bloqueos o conflictos, diferenciando error temporal de error funcional.
Registrar bloqueos y tiempos de espera para diagnosticar incidencias productivas.
Validar escenarios de concurrencia con sesiones paralelas, operaciones repetidas y cambios simultáneos.
Revisar triggers, cursores y procesos batch que pueden amplificar bloqueos sin que sea evidente.
Construir una práctica de concurrencia donde dos procesos compiten por los mismos registros y se resuelve con control transaccional.
Tema 21: Paquetes estándar útiles: DBMS_OUTPUT, DBMS_APPLICATION_INFO y DBMS_SCHEDULER
Usar `DBMS_OUTPUT` como apoyo de desarrollo, entendiendo sus límites y por qué no debe ser el mecanismo principal de logging productivo.
Aplicar `DBMS_APPLICATION_INFO` para marcar módulo, acción y cliente, facilitando trazabilidad en sesiones y diagnósticos.
Crear jobs con `DBMS_SCHEDULER` para ejecutar procesos programados, cargas, mantenimiento o tareas periódicas controladas.
Diseñar calendarios, ventanas, programas y jobs con nombres claros, ownership y documentación operativa.
Gestionar errores de jobs, reintentos, logs, estado, ejecución manual y desactivación controlada.
Evitar procesos programados sin owner, sin alertas, sin logging y sin procedimiento de recuperación.
Integrar jobs PL/SQL con procesos de datos, cierres contables, actualizaciones nocturnas o sincronizaciones internas.
Revisar permisos necesarios para crear, ejecutar y administrar jobs sin conceder privilegios excesivos.
Monitorizar ejecución, duración, resultado y fallos de jobs mediante vistas del diccionario y herramientas disponibles.
Construir un job programado que ejecuta un paquete PL/SQL, registra progreso y gestiona errores.
Tema 22: Instrumentación, logging y observabilidad en PL/SQL
Diseñar logging productivo con tablas de auditoría, niveles, módulo, operación, usuario, clave de negocio y mensaje técnico.
Separar logging técnico, auditoría funcional, trazabilidad de procesos y evidencias de cumplimiento.
Usar identificadores de correlación para conectar llamadas de aplicación, procedimientos, jobs y procesos externos.
Evitar registrar datos personales, secretos, tokens, payloads completos o información sensible innecesaria.
Registrar inicio, fin, duración, filas procesadas, errores, warnings y resumen de resultados en procesos batch.
Diseñar logs que permitan reejecución, análisis de fallos y soporte sin revisar manualmente todo el código.
Controlar crecimiento de tablas de log mediante retención, particionado, limpieza o archivado.
Integrar instrumentación PL/SQL con herramientas de monitorización, vistas del diccionario y diagnóstico de Oracle.
Crear procedimientos auxiliares de logging reutilizables sin introducir dependencias circulares ni commits peligrosos.
Construir un sistema de instrumentación para procesos PL/SQL críticos con trazabilidad y retención controlada.
Tema 23: Depuración y diagnóstico de código PL/SQL
Interpretar errores de compilación, errores runtime, stack de llamadas, línea de fallo y mensajes Oracle relevantes.
Usar herramientas del cliente para compilar, ejecutar, depurar paso a paso, inspeccionar variables y revisar resultados.
Consultar vistas del diccionario para localizar objetos inválidos, dependencias, errores, código fuente y permisos.
Diagnosticar errores frecuentes: `NO_DATA_FOUND`, `TOO_MANY_ROWS`, violaciones de constraint, conversiones y problemas de permisos.
Reproducir fallos con datos mínimos, aislando la causa antes de modificar código productivo.
Crear scripts de diagnóstico que preparan contexto, ejecutan caso problemático y limpian datos de prueba.
Evitar arreglos especulativos que cambian varias piezas sin una hipótesis clara ni prueba de regresión.
Documentar causa raíz, impacto, corrección, pruebas y prevención tras resolver un error relevante.
Usar logging y `DBMS_APPLICATION_INFO` para complementar depuración en procesos largos o jobs no interactivos.
Resolver un caso práctico de bug PL/SQL desde error reportado hasta corrección validada.
Tema 24: Testing de PL/SQL y validación automatizada
Diseñar pruebas para procedimientos, funciones, paquetes, triggers y procesos batch usando datos controlados y verificaciones repetibles.
Crear scripts de prueba que preparan datos, ejecutan código, validan resultados y limpian el escenario.
Diferenciar pruebas unitarias de funciones puras, pruebas de integración sobre tablas reales y pruebas end-to-end de procesos completos.
Validar escenarios de éxito, errores esperados, permisos, datos límite, nulos, concurrencia y reintentos.
Usar frameworks o herramientas de testing PL/SQL cuando el equipo necesita suites automatizadas y reportes estructurados.
Integrar pruebas PL/SQL en pipelines CI/CD para evitar despliegues con objetos inválidos o regresiones críticas.
Crear datos sintéticos realistas que no dependan de información productiva ni de estados manuales del entorno.
Evitar pruebas frágiles que dependen del orden de ejecución, fecha actual no controlada o datos compartidos por varios escenarios.
Medir cobertura funcional de reglas críticas aunque no exista cobertura de código perfecta.
Construir una suite de pruebas para un paquete PL/SQL con validación de resultados, errores y rollback.
Tema 25: Integración de PL/SQL con aplicaciones .NET, Java y servicios
Diseñar APIs PL/SQL consumibles desde aplicaciones, evitando que cada cliente ejecute DML directo sobre tablas críticas.
Definir contratos estables para procedimientos y funciones llamados desde .NET, Java, Python, ETL o herramientas BI.
Gestionar parámetros, tipos, cursores de salida, errores funcionales y códigos de retorno de forma predecible.
Evitar acoplar la aplicación a detalles internos de tablas, secuencias, triggers o estructuras temporales.
Diseñar límites claros entre lógica de aplicación y lógica PL/SQL para reducir duplicidad y conflictos de responsabilidad.
Validar llamadas desde clientes externos con pruebas de integración y datos controlados.
Gestionar transacciones cuando aplicación y PL/SQL participan en la misma operación de negocio.
Documentar cada punto de entrada PL/SQL como contrato técnico: parámetros, permisos, errores, transacción y ejemplos.
Revisar rendimiento de llamadas repetitivas desde aplicaciones que podrían agruparse en operaciones batch o bulk.
Construir una integración de ejemplo donde una aplicación llama a un paquete PL/SQL para ejecutar una operación controlada.
Tema 26: PL/SQL para procesos batch, ETL y cargas de datos
Diseñar procesos batch que validan, transforman, cargan y consolidan datos con trazabilidad y capacidad de reinicio.
Crear tablas staging para separar datos recibidos, datos validados, errores y datos finalmente publicados.
Aplicar reglas de calidad antes de insertar información en tablas maestras o modelos de consumo.
Gestionar errores por fila, errores por lote y errores críticos diferenciando qué puede continuar y qué debe abortarse.
Usar bulk operations, `MERGE`, particionado lógico y control de commits para mejorar rendimiento sin perder trazabilidad.
Registrar métricas de carga: filas recibidas, procesadas, rechazadas, corregidas, actualizadas y duplicadas.
Diseñar procesos reejecutables que no duplican información ni dejan estados intermedios incoherentes.
Coordinar PL/SQL con herramientas ETL, orquestadores, jobs externos o pipelines de datos corporativos.
Validar datos con reglas configurables cuando las condiciones cambian por país, negocio, producto o cliente.
Construir un proceso de carga completo con staging, validación, errores, publicación, logging y resumen final.
Tema 27: PL/SQL en entornos de reporting, BI y explotación analítica
Diseñar vistas, funciones y procesos PL/SQL que preparan datos para reporting sin comprometer rendimiento transaccional.
Evitar lógica pesada en consultas de BI que se ejecutan muchas veces y afectan a usuarios operativos.
Crear procesos de preagregación, snapshots, tablas resumen o materialización cuando el consumo analítico lo requiere.
Gestionar calendarios de actualización, ventanas de carga, cierres, periodos y disponibilidad de datos.
Controlar permisos para que herramientas BI accedan a vistas o esquemas de consumo, no a tablas internas sensibles.
Documentar reglas de negocio usadas en indicadores, métricas, cálculos y transformaciones PL/SQL.
Evitar duplicar fórmulas entre PL/SQL, herramientas BI y aplicaciones sin un criterio de ownership claro.
Revisar rendimiento de funciones y vistas utilizadas por informes recurrentes.
Crear validaciones entre datos origen, datos transformados y datos publicados para reporting.
Construir un proceso PL/SQL que prepara una tabla de indicadores con auditoría y validación de consistencia.
Tema 28: Dependencias, diccionario de datos y objetos inválidos
Consultar vistas del diccionario para conocer objetos, columnas, constraints, dependencias, grants, errores e información del esquema.
Analizar dependencias entre paquetes, vistas, tablas, funciones y triggers antes de modificar objetos críticos.
Detectar objetos inválidos y entender por qué se invalidan tras cambios de estructura, permisos o compilación.
Crear scripts para recompilar objetos, revisar errores y generar reportes de estado del esquema.
Evitar cambios de tabla que rompen paquetes, vistas o aplicaciones consumidoras sin análisis previo.
Documentar dependencias externas cuando un paquete PL/SQL es llamado por aplicaciones, jobs, ETL o herramientas BI.
Usar el diccionario como fuente de auditoría técnica, no solo como herramienta de consulta manual.
Revisar grants y owners para detectar dependencias de seguridad que podrían romper despliegues.
Crear reportes de impacto antes de desplegar cambios en tipos, tablas, columnas o paquetes públicos.
Construir un análisis de dependencias sobre un esquema de laboratorio y proponer un plan seguro de cambio.
Tema 29: Versionado, despliegue y CI/CD de código PL/SQL
Organizar código PL/SQL en repositorios Git con scripts reproducibles, orden de despliegue y documentación de cambios.
Separar creación de objetos, cambios incrementales, datos maestros, rollback, pruebas y scripts de validación.
Definir convenciones de nombres de archivos para paquetes, funciones, procedimientos, triggers, grants y pruebas.
Evitar cambios manuales directos en producción que no quedan reflejados en repositorio ni pueden reproducirse.
Diseñar pipelines que compilan objetos, ejecutan pruebas, revisan errores y publican reportes antes de liberar cambios.
Gestionar despliegues por entornos con variables, esquemas, grants y datos de configuración separados.
Crear scripts idempotentes cuando sea posible, especialmente para grants, sin ocultar errores reales de despliegue.
Documentar releases PL/SQL con objetos afectados, riesgos, pruebas, rollback y ventanas de ejecución.
Coordinar despliegues PL/SQL con cambios de aplicación, contratos, versiones y dependencias externas.
Construir un flujo CI/CD de laboratorio para desplegar un paquete PL/SQL, ejecutar pruebas y validar objetos.
Tema 30: Calidad de código, estándares y revisión de PL/SQL
Definir estándares de naming para variables, constantes, cursores, paquetes, procedimientos, funciones, errores y tablas auxiliares.
Revisar legibilidad, modularidad, tamaño de rutinas, duplicación, manejo de errores, transacciones y acoplamiento.
Crear checklist de revisión para cambios PL/SQL: permisos, rendimiento, seguridad, pruebas, transacción y logging.
Evitar código comentado, scripts sin owner, lógica duplicada y nombres que no expresan intención de negocio.
Diseñar paquetes pequeños y cohesionados en lugar de módulos enormes difíciles de probar y desplegar.
Aplicar revisiones de rendimiento a consultas críticas antes de aceptar cambios en procesos batch o reporting.
Revisar seguridad de SQL dinámico, privilegios, grants, errores expuestos y logs con datos sensibles.
Establecer Definition of Done para objetos PL/SQL: compila, prueba, documenta, registra, controla errores y respeta estándares.
Usar herramientas de análisis, formateo o revisión cuando la organización las tenga aprobadas.
Construir una guía de calidad PL/SQL para un equipo corporativo con ejemplos correctos e incorrectos.
Tema 31: Refactorización y modernización de PL/SQL legacy
Auditar código PL/SQL existente para detectar paquetes gigantes, duplicidad, lógica muerta, SQL lento y errores silenciados.
Crear pruebas de caracterización antes de modificar procedimientos críticos cuyo comportamiento no está documentado.
Separar rutinas internas, extraer funciones auxiliares y reducir bloques largos sin cambiar contrato público.
Sustituir cursores fila a fila por SQL set-based o bulk processing cuando la mejora sea clara y medible.
Reordenar manejo de errores para que los fallos se registren y propaguen de forma controlada.
Documentar paquetes legacy con propósito, entradas, salidas, dependencias, errores, jobs y consumidores.
Eliminar dependencias innecesarias entre paquetes, triggers y scripts que dificultan despliegues.
Modernizar código por fases pequeñas, con validación después de cada cambio y rollback preparado.
Priorizar refactorización según riesgo, frecuencia de cambio, incidencias, rendimiento y criticidad de negocio.
Ejecutar una refactorización guiada de un paquete PL/SQL legacy con pruebas, métricas y documentación.
Tema 32: PL/SQL y nuevas capacidades de Oracle AI Database
Comprender que PL/SQL evoluciona junto a Oracle Database y que las nuevas versiones pueden incorporar tipos, cláusulas y capacidades adicionales.
Revisar el uso del tipo `VECTOR` en PL/SQL cuando la base trabaja con capacidades de AI Vector Search y operaciones relacionadas.
Analizar cuándo una aplicación PL/SQL puede necesitar interactuar con datos vectoriales, embeddings o funcionalidades de IA dentro de Oracle.
Revisar la cláusula `RESETTABLE` para paquetes cuando el estado de paquete puede descartarse durante reinstanciación sin afectar al funcionamiento esperado.
Evaluar impacto de nuevas capacidades sobre compatibilidad, despliegues, soporte y estándares internos de desarrollo.
Evitar introducir funcionalidades recientes sin confirmar versión exacta de base, compatibilidad del entorno y política corporativa.
Documentar qué features están permitidas por versión, entorno y tipo de aplicación.
Crear pruebas específicas para código que usa capacidades nuevas, especialmente cuando afecta tipos, paquetes o estado de sesión.
Diseñar una estrategia de adopción gradual para features recientes sin romper sistemas legacy.
Construir una prueba controlada con una capacidad actual de PL/SQL en Oracle AI Database, documentando límites y requisitos.
Tema 33: Seguridad de datos, auditoría y cumplimiento en PL/SQL
Aplicar principios de mínimo privilegio en paquetes, procedimientos, funciones y usuarios técnicos que ejecutan lógica PL/SQL.
Diseñar auditoría funcional para acciones críticas: altas, bajas, modificaciones, aprobaciones, cambios de permisos y procesos batch.
Evitar registrar datos personales o sensibles en tablas de log, mensajes de error, trazas o salidas de depuración.
Usar controles de validación y autorización dentro de paquetes cuando una operación no debe depender solo de la aplicación cliente.
Revisar implicaciones de cumplimiento cuando PL/SQL transforma, exporta, anonimiza o consolida datos regulados.
Gestionar seudonimización, anonimización o enmascaramiento desde procesos PL/SQL cuando existe un caso aprobado.
Controlar acceso a código fuente, grants de ejecución, cambios de owner y despliegues sobre paquetes sensibles.
Diseñar evidencias de auditoría que permitan reconstruir quién ejecutó qué, cuándo, sobre qué datos y con qué resultado.
Revisar procedimientos administrativos que podrían modificar grandes volúmenes de datos sin confirmación, logging o rollback.
Construir un paquete de operación sensible con permisos mínimos, auditoría, errores seguros y validación de entrada.
Tema 34: Proyecto final integrador: plataforma PL/SQL empresarial para Oracle
Diseñar un esquema Oracle de laboratorio con tablas, constraints, secuencias, vistas, datos sintéticos, usuarios y permisos controlados.
Crear un paquete PL/SQL principal que actúe como API interna para operaciones de negocio, ocultando acceso directo a tablas críticas.
Implementar procedimientos de alta, actualización, validación, consulta y cierre de proceso con control transaccional.
Incorporar funciones reutilizables para reglas de negocio, normalización, clasificación, cálculo y validación de datos.
Usar cursores, colecciones, `BULK COLLECT` y `FORALL` en un proceso batch con control de errores por fila.
Añadir gestión profesional de excepciones con códigos funcionales, logging, trazabilidad y mensajes seguros.
Configurar permisos mediante grants de ejecución, usuarios de aplicación y separación entre owner de objetos y consumidor.
Crear pruebas automatizadas o scripts de validación que cubran éxito, errores, permisos, datos límite y rollback.
Preparar scripts de despliegue versionados con creación, actualización, grants, pruebas, rollback y validación de objetos inválidos.
Presentar el proyecto con documentación técnica, contratos del paquete, modelo de permisos, métricas de rendimiento y plan de mantenimiento.
Aulas Virtuales Personalizadas
¿Te imaginas tener un Temario 100% Personalizado para tu Empresa?
Pensado para quienes deben dominar PL/SQL en su día a día
Desarrolladores backend
Este curso encaja con desarrolladores que trabajan con aplicaciones empresariales conectadas a Oracle y necesitan comprender mejor la lógica que vive dentro de la base de datos. Aprenderán a diseñar procedimientos, funciones, paquetes y APIs PL/SQL mantenibles, evitando que la lógica crítica quede dispersa entre aplicación, consultas improvisadas y scripts difíciles de controlar.
Desarrolladores SQL y analistas técnicos
Los perfiles que ya trabajan con SQL podrán avanzar hacia un uso profesional de PL/SQL para automatizar procesos, encapsular reglas, validar datos, crear procesos batch, gestionar errores y construir componentes reutilizables. La formación les permite pasar de consultas sueltas a soluciones robustas dentro del entorno Oracle.
DBAs con responsabilidad de desarrollo
Los administradores de bases de datos que también participan en soporte, optimización, despliegues o mantenimiento de código podrán reforzar su capacidad para revisar PL/SQL, detectar problemas de rendimiento, controlar privilegios, analizar bloqueos, depurar errores y acompañar a equipos de desarrollo con criterio técnico.
Equipos de datos y BI
Los equipos que preparan información para reporting, ETL, data marts, procesos de calidad o integración con herramientas analíticas podrán usar PL/SQL para transformar datos, validar reglas, ejecutar cargas controladas y crear procesos trazables. El curso les ayuda a escribir lógica eficiente y segura sobre volúmenes importantes.
Arquitectos de software y responsables técnicos
Los perfiles de arquitectura podrán entender qué lógica conviene mantener en PL/SQL, qué debe vivir en la aplicación y cómo diseñar una frontera clara entre base de datos, servicios y consumidores. La formación aporta criterios sobre mantenibilidad, rendimiento, seguridad, testing, versionado y gobierno del código en Oracle.
Equipos de mantenimiento y modernización
Los equipos que heredan bases Oracle con procedimientos antiguos, paquetes grandes, triggers opacos o procesos batch críticos podrán aprender a diagnosticar, refactorizar y documentar código PL/SQL sin romper comportamiento productivo. El curso incluye estrategias de mejora gradual, pruebas y control de riesgos.
Proveedor con 16 años de experiencia en formación empresarial
Sobre
En Imagina Formación llevamos más de 16 años ayudando a profesionales y empresas a mejorar sus habilidades con formación práctica y totalmente adaptada a sus necesidades. Durante este tiempo, hemos formado a más de 480.000 personas y colaborado con más de 3.500 empresas, convirtiéndonos en un referente en el sector.
16
Años de liderazgo
+480.000
Alumnos formados en Imagina
¿Tienes dudas?
Resolvemos todas tus dudas sobre nuestra formación en PL/SQL
Explora las respuestas a las preguntas que guian a nuestra comunidad. Aqui encontraras claridad sobre como funciona todo, desde el acceso hasta los detalles de los cursos. Si buscas respuestas, este es el lugar para comenzar.
Parte desde fundamentos de PL/SQL, pero está orientado a un nivel profesional y corporativo. Se recomienda conocer SQL y conceptos básicos de bases de datos para aprovechar bien procedimientos, paquetes, cursores, rendimiento y seguridad.
Sí. El curso está actualizado tomando como referencia Oracle AI Database 26ai y la documentación vigente de PL/SQL Language Reference, que recoge fundamentos del lenguaje, paquetes, triggers, SQL dinámico y cambios actuales.
Sí. En entornos Oracle, PL/SQL sigue siendo clave para encapsular lógica cerca de los datos, procesos batch, validaciones, integraciones, seguridad y operaciones críticas. El curso también explica cuándo no conviene abusar de lógica en base de datos.
Sí. Se trabajan planes de ejecución, SQL embebido, bulk processing, cursores, funciones usadas desde SQL, bloqueos, procesos batch y criterios para elegir entre PL/SQL, SQL set-based o lógica de aplicación.
Sí. Los paquetes son una pieza central del temario. Se trabaja especificación, cuerpo, APIs internas, rutinas privadas, estado de paquete, versionado, permisos, pruebas y diseño modular.
Sí. El curso cubre triggers, pero con enfoque responsable. Se enseña cuándo usarlos, qué riesgos introducen, cómo probarlos, cómo documentarlos y cuándo conviene sustituirlos por alternativas más explícitas.
Sí. Se aborda `EXECUTE IMMEDIATE`, `DBMS_SQL`, variables enlazadas, validación de identificadores, riesgos de inyección SQL y criterios para decidir cuándo el SQL dinámico está justificado.
Sí. Se trabajan privilegios, grants, roles, `AUTHID DEFINER`, `AUTHID CURRENT_USER`, SQL dinámico seguro, auditoría, datos sensibles y modelos de acceso para aplicaciones.
Sí. El curso incluye pruebas mediante scripts, datos sintéticos, validación de resultados, pruebas de errores, permisos, rollback, integración en CI/CD y criterios de cobertura funcional.
Sí. Hay bloques específicos de diagnóstico, dependencias, objetos inválidos, refactorización, pruebas de caracterización, rendimiento, documentación y modernización gradual de código PL/SQL existente.
No. Es una formación corporativa práctica para desarrollo, datos, DBA y arquitectura. Puede reforzar conocimientos útiles de Oracle, pero no sustituye una preparación oficial de certificación.
Sí. Al tratarse de una formación corporativa en bases de datos, desarrollo PL/SQL, seguridad, rendimiento, datos y competencias digitales, puede plantearse como formación bonificable hasta el 100% a través de FUNDAE, según el crédito disponible y cumpliendo los requisitos administrativos aplicables.
Parte desde fundamentos de PL/SQL, pero está orientado a un nivel profesional y corporativo. Se recomienda conocer SQL y conceptos básicos de bases de datos para aprovechar bien procedimientos, paquetes, cursores, rendimiento y seguridad.
Sí. El curso está actualizado tomando como referencia Oracle AI Database 26ai y la documentación vigente de PL/SQL Language Reference, que recoge fundamentos del lenguaje, paquetes, triggers, SQL dinámico y cambios actuales.
Sí. En entornos Oracle, PL/SQL sigue siendo clave para encapsular lógica cerca de los datos, procesos batch, validaciones, integraciones, seguridad y operaciones críticas. El curso también explica cuándo no conviene abusar de lógica en base de datos.
Sí. Se trabajan planes de ejecución, SQL embebido, bulk processing, cursores, funciones usadas desde SQL, bloqueos, procesos batch y criterios para elegir entre PL/SQL, SQL set-based o lógica de aplicación.
Sí. Los paquetes son una pieza central del temario. Se trabaja especificación, cuerpo, APIs internas, rutinas privadas, estado de paquete, versionado, permisos, pruebas y diseño modular.
Sí. El curso cubre triggers, pero con enfoque responsable. Se enseña cuándo usarlos, qué riesgos introducen, cómo probarlos, cómo documentarlos y cuándo conviene sustituirlos por alternativas más explícitas.
Sí. Se aborda `EXECUTE IMMEDIATE`, `DBMS_SQL`, variables enlazadas, validación de identificadores, riesgos de inyección SQL y criterios para decidir cuándo el SQL dinámico está justificado.
Sí. Se trabajan privilegios, grants, roles, `AUTHID DEFINER`, `AUTHID CURRENT_USER`, SQL dinámico seguro, auditoría, datos sensibles y modelos de acceso para aplicaciones.
Sí. El curso incluye pruebas mediante scripts, datos sintéticos, validación de resultados, pruebas de errores, permisos, rollback, integración en CI/CD y criterios de cobertura funcional.
Sí. Hay bloques específicos de diagnóstico, dependencias, objetos inválidos, refactorización, pruebas de caracterización, rendimiento, documentación y modernización gradual de código PL/SQL existente.
No. Es una formación corporativa práctica para desarrollo, datos, DBA y arquitectura. Puede reforzar conocimientos útiles de Oracle, pero no sustituye una preparación oficial de certificación.
Sí. Al tratarse de una formación corporativa en bases de datos, desarrollo PL/SQL, seguridad, rendimiento, datos y competencias digitales, puede plantearse como formación bonificable hasta el 100% a través de FUNDAE, según el crédito disponible y cumpliendo los requisitos administrativos aplicables.