Curso de PL/Java
Aprende con el curso de PL/Java para empresas hasta 100% bonificado, a medida para tu organización.
Totalmente práctico y aplicable
Formación en PL/Java a medida
100% bonificable a través de FUNDAE
Curso TUTORIZADO por expertos
Modalidad Aula Virtual Personalizada
Curso de PL/Java en Aula Virtual Personalizada
Nuestra modalidad AVP es una formación en directo, práctica y 100% adaptada a vuestro equipo. No trabajamos con contenidos genéricos: diseñamos la formación en función de vuestro nivel, objetivos, procesos internos y necesidades reales de aplicación.
Solicitar informaciónTemario 100% a medida
Creamos el temario desde cero a partir de vuestras necesidades, nivel del equipo y objetivos concretos, priorizando aquellos contenidos que realmente aporten valor en el día a día.
Proyectos personalizados
Durante la formación trabajaremos con archivos, ejemplos, informes o procesos similares a los que utiliza vuestro equipo, para que el aprendizaje sea directamente aplicable al puesto de trabajo.
Sesiones en directo con consultor experto
Un formador especialista imparte las clases en tiempo real, resolviendo dudas, revisando casos concretos y adaptando el ritmo de la formación a la evolución del grupo.
Calendario adaptado a vuestra disponibilidad
Definimos conjuntamente fechas, horarios y duración de las sesiones para facilitar la asistencia del equipo y minimizar el impacto en la operativa diaria de la empresa.
Curso de PL/Java hasta 100% Bonificable a través de FUNDAE
Tu bonificación paso a paso
Forma a tu equipo sin costes mediante la bonificación estatal.
Este programa de PL/Java para empresas es subvencionable hasta el 100%.
- Potencia las habilidades de edición y automatización de tus profesionales.
- Accede a una formación avanzada en PL/Java práctica y orientada a resultados.
- Prepara a tu equipo para los retos documentales del entorno laboral actual.
- Gestionamos gratis tu bonificación de este curso corporativo de PL/Java ante FUNDAE.
Calcula tu bonificación
Revisamos tu caso
Preparamos la gestión
Tu equipo realiza el curso
Aplicas la bonificación
La formación que decides
te devuelve dinero
Todos nuestros cursos son bonificables a través de FUNDAE.
Gestionamos toda la documentación por ti.
Calcula tu crédito aproximado
Crédito bonificable estimado
420€*
*Cálculo orientativo
Reutiliza conocimiento Java cerca del dato
Refuerza seguridad y control operativo Incluye lenguajes `java` y `javau`, permisos, política de seguridad, Java 24+, dependencias, classpath, auditoría y principio de mínimo privilegio.
Mejora mantenibilidad La formación trabaja contratos claros, tests, migraciones, documentación, versionado, CI/CD, observabilidad y runbooks.
Cubre casos reales de PostgreSQL enterprise Incluye funciones, triggers, JSON, JDBC interno, transacciones, auditoría, rendimiento, Docker, troubleshooting y gobierno corporativo.
Facilita decisiones de arquitectura El alumno aprende cuándo usar PL/Java, cuándo migrarlo, cuándo elegir PL/pgSQL, PL/Python, PL/Rust o cuándo mover la lógica fuera de la base.
Produce entregables listos para empresa El Proyecto Final genera una solución completa con JAR, funciones, triggers, permisos, tests, migraciones, Docker, auditoría y documentación.
Personaliza el temario al 100% para tu equipo
Diseñamos una formación a medida utilizando los documentos y flujos de trabajo reales de tu empresa.
Nueva Plataforma
de E-learningFormación en directo con plataforma de apoyo para reforzar el aprendizaje
Acceso a las grabaciones
Los alumnos podrán revisar las sesiones grabadas para repasar conceptos clave, recuperar explicaciones concretas o reforzar aquellos contenidos que necesiten después de la clase en directo.
Recursos formativos
Materiales, sesiones grabadas y documentación de apoyo quedan centralizados en la plataforma para que el equipo pueda consultarlos durante y después de la formación.
Confirmación de asistencia
La plataforma permite registrar y confirmar la asistencia de los participantes, facilitando el seguimiento de la formación y la gestión documental necesaria para la bonificación FUNDAE.
Ejercicios prácticos
Después de la formación en directo, los alumnos podrán acceder a ejercicios prácticos para aplicar lo trabajado en clase y consolidar el aprendizaje con actividades guiadas.
Acceso a las grabaciones
Los alumnos podrán revisar las sesiones grabadas para repasar conceptos clave, recuperar explicaciones concretas o reforzar aquellos contenidos que necesiten después de la clase en directo.
Recursos formativos
Materiales, sesiones grabadas y documentación de apoyo quedan centralizados en la plataforma para que el equipo pueda consultarlos durante y después de la formación.
Confirmación de asistencia
La plataforma permite registrar y confirmar la asistencia de los participantes, facilitando el seguimiento de la formación y la gestión documental necesaria para la bonificación FUNDAE.
Ejercicios prácticos
Después de la formación en directo, los alumnos podrán acceder a ejercicios prácticos para aplicar lo trabajado en clase y consolidar el aprendizaje con actividades guiadas.
Practica y mejora con nuestra plataforma
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
Temario del curso
Encuentra todo el temario del curso aquí.
Comprender qué es PL/Java y por qué permite ejecutar código Java dentro del backend de PostgreSQL.
Diferenciar PL/Java de PL/pgSQL, PL/Python, PL/Rust, PL/Perl, extensiones C y servicios Java externos.
Identificar casos donde Java aporta valor: parsing, validación, normalización, integración, tipos complejos y lógica reutilizable.
Reconocer cuándo no conviene usar PL/Java: lógica de negocio extensa, llamadas externas lentas o dependencias pesadas.
Entender el impacto de ejecutar código Java dentro del proceso de la base de datos.
Analizar riesgos de rendimiento, bloqueo, memoria, seguridad, compatibilidad y mantenimiento.
Situar PL/Java dentro de arquitecturas backend, data engineering, sistemas legacy y modernización.
Comparar lógica en base de datos frente a lógica en microservicio, API, job o pipeline externo.
Definir matriz de decisión para aceptar, mantener, migrar o rechazar una función PL/Java.
Preparar el caso base del curso: funciones Java, triggers, JAR, despliegue, testing y auditoría.
Revisar qué son los procedural languages en PostgreSQL y cómo se integran con el motor.
Entender que PL/Java no forma parte de la distribución base de PostgreSQL y se instala como extensión externa.
Diferenciar lenguajes core, lenguajes externos, extensiones, handlers y librerías compartidas.
Revisar cómo PostgreSQL delega la ejecución de funciones a un handler de lenguaje.
Comparar lenguajes trusted, untrusted y modelos de permisos.
Entender el papel del esquema `sqlj` dentro de PL/Java.
Revisar cómo se almacenan JARs, descriptores y classpaths dentro de PostgreSQL.
Identificar qué responsabilidades recaen en DBA, desarrollo, plataforma y seguridad.
Evitar adoptar PL/Java por familiaridad con Java sin revisar alternativa SQL o backend.
Realizar ejercicio de comparación entre PL/pgSQL, PL/Python, PL/Rust, PL/Java y servicio externo.
Preparar entorno PostgreSQL de laboratorio sin datos productivos.
Instalar PL/Java desde paquete disponible o build controlado.
Configurar ubicación de `libjvm` mediante `pljava.libjvm_location`.
Configurar `pljava.module_path` para que PostgreSQL encuentre módulos y JARs necesarios.
Habilitar la extensión con `CREATE EXTENSION pljava` en una sesión adecuada.
Verificar creación de lenguajes `java` y `javau`.
Comprobar disponibilidad del esquema `sqlj` y funciones auxiliares de instalación.
Ejecutar primera función Java de prueba para validar carga de JVM y classpath.
Diagnosticar errores comunes de rutas, permisos, JVM, librerías nativas y sesión.
Realizar ejercicio de instalación completa y validación funcional de PL/Java.
Comprender cómo PL/Java carga la JVM dentro del backend de PostgreSQL.
Analizar qué significa ejecutar Java en el proceso asociado a una conexión.
Revisar implicaciones de memoria, classloading, threads, lifecycle y errores.
Diferenciar JVM de aplicación externa y JVM embebida en servidor de base de datos.
Gestionar limitaciones operativas al cargar una JVM dentro de PostgreSQL.
Evitar patrones Java propios de aplicaciones servidor que no encajan dentro de la base.
Analizar riesgos de librerías con hilos, IO, red, caches globales o estado mutable.
Definir límites de uso para código Java ejecutado en funciones SQL.
Documentar configuración JVM necesaria por entorno.
Realizar ejercicio de análisis de impacto JVM en un servidor PostgreSQL.
Diferenciar `LANGUAGE java` y `LANGUAGE javau` desde la perspectiva de permisos y seguridad.
Comprender quién puede crear funciones en cada lenguaje según configuración.
Revisar el principio de mínimo privilegio en creación y ejecución de funciones PL/Java.
Analizar acceso a ficheros, red, propiedades del sistema y recursos externos.
Revisar política de seguridad de PL/Java y su relación con versiones de Java.
Evaluar implicaciones de ejecutar PL/Java con o sin policy enforcement.
Tratar con especial cuidado escenarios Java 24+ donde cambian las condiciones de seguridad.
Crear matriz de permisos por rol: DBA, deployer, developer, auditor y usuario de aplicación.
Evitar conceder `USAGE` amplio sin revisión de riesgos.
Realizar ejercicio de diseño de política segura para `java` y `javau`.
Crear proyecto Maven para empaquetar funciones PL/Java.
Definir `groupId`, `artifactId`, versión, paquetes Java y estructura de carpetas.
Añadir dependencias necesarias sin incluir librerías innecesarias.
Configurar compilación, tests, JAR final y recursos de despliegue.
Separar código de funciones, clases auxiliares, tests y descriptors.
Crear perfiles Maven para desarrollo, test y release.
Documentar versión de Java, PL/Java, PostgreSQL y dependencias del proyecto.
Evitar builds manuales no reproducibles.
Preparar naming corporativo de artefactos JAR.
Realizar ejercicio de proyecto Maven preparado para PL/Java.
Comprender cómo las anotaciones de PL/Java exponen métodos Java a PostgreSQL.
Usar anotaciones para definir funciones, tipos SQL, nombres, esquemas y contratos.
Entender el SQLJ deployment descriptor generado durante la compilación.
Revisar cómo el descriptor contiene instrucciones de instalación y desinstalación.
Relacionar clases Java, métodos anotados, SQL generado y funciones disponibles.
Crear documentación entre método Java y función SQL resultante.
Evitar descriptores opacos sin revisión de lo que instalarán en la base.
Revisar compatibilidad entre anotaciones, JAR y versión de PL/Java.
Preparar inspección del descriptor antes de despliegue.
Realizar ejercicio de función anotada y revisión del SQLJ descriptor generado.
Empaquetar clases Java y descriptor SQLJ dentro de un JAR.
Instalar JAR en PostgreSQL usando `sqlj.install_jar`.
Actualizar JAR instalado con versiones nuevas de código.
Eliminar JARs obsoletos de forma controlada.
Configurar classpath con `sqlj.set_classpath` por esquema.
Entender cómo el classpath afecta a la resolución de clases Java.
Gestionar varios JARs, versiones, dependencias y esquemas.
Evitar colisiones de clases y dependencias entre aplicaciones.
Documentar JARs instalados, versión, owner, funciones y dependencias.
Realizar ejercicio de instalación, actualización y retirada de un JAR PL/Java.
Crear métodos Java `public static` invocables como funciones SQL.
Definir argumentos SQL y tipos Java compatibles.
Devolver valores escalares, nulos, estructuras y colecciones según contrato.
Gestionar excepciones Java y su traducción a errores PostgreSQL.
Crear funciones pequeñas, puras y con responsabilidad clara.
Marcar volatilidad, coste, seguridad y comportamiento esperado desde SQL.
Evitar funciones que mezclan validación, consultas, escritura y logging sin separación.
Documentar propósito, parámetros, retorno, errores y ejemplos de llamada.
Comparar función Java con equivalente PL/pgSQL o SQL nativo.
Realizar ejercicio de funciones escalares PL/Java para validación y cálculo.
Mapear tipos PostgreSQL hacia tipos Java: texto, enteros, decimales, booleanos, fechas y timestamps.
Gestionar `NULL` mediante objetos, wrappers y control explícito.
Evitar problemas con tipos primitivos cuando la entrada puede ser nula.
Tratar `BigDecimal` para precisión financiera o científica.
Trabajar con fechas y horas sin introducir errores de zona horaria.
Gestionar conversiones de caracteres, encoding y normalización Unicode.
Devolver tipos compatibles con la firma SQL declarada.
Crear validaciones de entrada antes de ejecutar lógica compleja.
Documentar supuestos de precisión, formatos y límites.
Realizar ejercicio de conversión segura entre PostgreSQL y Java.
Recibir arrays PostgreSQL y convertirlos en estructuras Java manejables.
Procesar colecciones de textos, números, identificadores, estados o códigos.
Devolver arrays cuando el contrato SQL lo requiere.
Gestionar arrays vacíos, valores nulos internos y tamaños inesperados.
Crear resultados tabulares mediante patrones compatibles con PL/Java.
Usar iteradores o result sets cuando se devuelven múltiples filas.
Evitar cargar grandes colecciones completas en memoria sin necesidad.
Comparar procesamiento en Java frente a SQL set-based.
Crear pruebas de límites para colecciones grandes.
Realizar ejercicio de función PL/Java que normaliza y deduplica arrays.
Trabajar con tipos compuestos definidos en PostgreSQL.
Crear funciones que devuelven varias columnas con contrato claro.
Representar registros en Java de forma legible y segura.
Diseñar estructuras de retorno para reporting, validación o APIs internas.
Evitar devolver JSON cuando el resultado natural es relacional.
Documentar nombres, tipos, orden y significado de columnas devueltas.
Tratar casos de nulos, campos opcionales y valores calculados.
Crear tests de estructura y datos esperados.
Comparar tipos compuestos con tablas temporales, vistas o JSONB.
Realizar ejercicio de función que devuelve resultado estructurado.
Procesar JSON almacenado como texto o JSONB desde funciones PL/Java.
Usar librerías Java aprobadas para parsing cuando el entorno lo permite.
Validar claves, tipos, estructuras, arrays anidados y campos obligatorios.
Crear funciones de normalización de payloads procedentes de APIs o integraciones.
Comparar uso de operadores JSONB nativos frente a procesamiento Java.
Evitar procesar grandes volúmenes JSON fila a fila si PostgreSQL puede hacerlo mejor.
Gestionar errores de JSON inválido con mensajes claros.
Diseñar salida relacional o JSON normalizado según el caso.
Documentar esquema esperado y criterios de aceptación.
Realizar ejercicio de validación y transformación JSON con PL/Java.
Comprender cómo PL/Java proporciona una conexión JDBC interna al backend PostgreSQL.
Ejecutar consultas SQL desde métodos Java usando JDBC.
Usar `PreparedStatement` para parametrizar consultas de forma segura.
Leer `ResultSet` y transformar resultados en valores de retorno.
Ejecutar inserts, updates o deletes solo cuando la arquitectura lo justifica.
Evitar concatenación SQL con datos de usuario.
Gestionar excepciones `SQLException` y errores de negocio.
Evitar ejecutar consultas internas por cada fila si puede resolverse con SQL set-based.
Documentar dependencias de tablas, vistas, esquemas y permisos.
Realizar ejercicio de función PL/Java que consulta reglas auxiliares con JDBC.
Comprender que una función PL/Java se ejecuta dentro de la transacción SQL que la invoca.
Analizar impacto de errores Java sobre rollback de la transacción.
Gestionar operaciones internas de JDBC sin romper consistencia transaccional.
Evitar commits, rollbacks o patrones propios de aplicaciones externas donde no proceden.
Usar savepoints o patrones equivalentes cuando se necesita recuperación parcial.
Diseñar funciones que fallan de forma predecible y trazable.
Analizar cómo triggers PL/Java afectan a operaciones de inserción, actualización y borrado.
Evitar llamadas lentas dentro de transacciones abiertas.
Documentar comportamiento transaccional de funciones críticas.
Realizar ejercicio de función con error controlado y análisis de rollback.
Crear funciones Java que actúan como triggers PostgreSQL.
Diferenciar triggers `BEFORE`, `AFTER`, `INSTEAD OF`, por fila y por sentencia.
Acceder a datos de fila antigua, fila nueva, tabla, operación y contexto del trigger.
Modificar valores antes de insertar o actualizar cuando procede.
Rechazar operaciones que incumplen validaciones críticas.
Registrar eventos de auditoría después de cambios relevantes.
Evitar triggers pesados en tablas de alta escritura.
Documentar tablas, columnas, efectos y dependencias de cada trigger.
Crear pruebas para INSERT, UPDATE, DELETE, rollback y cargas masivas.
Realizar ejercicio de trigger PL/Java para validación y normalización.
Diseñar auditoría de cambios con usuario, timestamp, operación, tabla y valores relevantes.
Detectar diferencias entre estado anterior y nuevo.
Validar reglas complejas no cubiertas por constraints simples.
Normalizar datos antes de persistirlos.
Enriquecer registros con información derivada controlada.
Evitar auditar datos personales o secretos más allá de lo necesario.
Diseñar triggers compatibles con cargas batch y procesos de mantenimiento.
Crear mecanismos de bypass controlado para operaciones autorizadas.
Medir impacto de auditoría en rendimiento.
Realizar ejercicio de auditoría avanzada con trigger PL/Java.
Comprender capacidades avanzadas de PL/Java más allá de funciones simples.
Evaluar cuándo tiene sentido crear agregados personalizados.
Diseñar lógica de agregación con estado, entrada, combinación y resultado final.
Revisar creación de tipos u operadores cuando el dominio lo justifica.
Comparar extensibilidad con SQL, C, pgrx o extensiones existentes.
Evitar desarrollar tipos avanzados si solo se necesita una función puntual.
Documentar comportamiento, límites y casos de uso de agregados personalizados.
Medir rendimiento frente a agregados nativos de PostgreSQL.
Preparar pruebas de exactitud y regresión.
Realizar ejercicio conceptual de agregado PL/Java para cálculo especializado.
Revisar dependencias Java incluidas o referenciadas por JARs PL/Java.
Analizar licencias, vulnerabilidades, tamaño, mantenimiento y compatibilidad.
Controlar classpath por esquema para evitar conflictos entre aplicaciones.
Evitar librerías que crean hilos, abren conexiones, escriben ficheros o hacen IO no autorizado.
Definir allowlist de dependencias aprobadas.
Bloquear versiones con Maven y documentar hashes o artefactos usados.
Revisar impacto de dependencias transitivas.
Integrar análisis de vulnerabilidades en CI/CD.
Evitar subir JARs sin trazabilidad de build.
Realizar ejercicio de auditoría de dependencias de un JAR PL/Java.
Comprender el impacto de la evolución de Java sobre el modelo histórico de seguridad.
Revisar qué ocurre cuando PL/Java se ejecuta con Java 24 o superior.
Analizar implicaciones de policy enforcement frente a ejecución sin enforcement.
Definir estrategia corporativa de versión Java soportada.
Evaluar si conviene fijar Java 17 o 21 LTS para estabilidad y soporte.
Documentar configuración JVM y restricciones por entorno.
Probar funciones PL/Java después de actualizar Java.
Evitar cambios de versión de Java sin pruebas de regresión y revisión de seguridad.
Crear plan de actualización con DBA, plataforma y seguridad.
Realizar ejercicio de análisis de impacto de actualización de Java en PL/Java.
Medir coste de funciones PL/Java dentro de consultas SQL reales.
Usar `EXPLAIN` y `EXPLAIN ANALYZE` para detectar impacto de funciones.
Comparar rendimiento frente a SQL nativo, PL/pgSQL, PL/Python, PL/Rust y servicio Java externo.
Evitar llamadas por fila sobre tablas grandes sin benchmark.
Revisar coste declarado, volatilidad y posibilidad de usar índices.
Optimizar parsing, conversión de tipos, consultas internas y estructuras intermedias.
Evitar carga innecesaria de clases o inicializaciones pesadas.
Medir memoria, CPU, latencia y bloqueos asociados.
Crear benchmarks reproducibles con datos representativos.
Realizar ejercicio de optimización de función PL/Java en consulta intensiva.
Analizar cómo funciones PL/Java interactúan con sesiones concurrentes.
Revisar riesgos de estado estático mutable en clases Java cargadas.
Evitar caches globales sin control, sincronización o invalidación.
Diseñar funciones thread-safe cuando el entorno lo requiere.
Identificar deadlocks por consultas internas o triggers mal diseñados.
Medir impacto de funciones lentas en locks y experiencia de aplicación.
Evitar operaciones IO o red dentro de transacciones críticas.
Crear pruebas de concurrencia con cargas simultáneas.
Documentar comportamiento esperado bajo carga.
Realizar ejercicio de diagnóstico de bloqueo provocado por trigger PL/Java.
Crear tests unitarios Java para lógica pura antes de empaquetarla en JAR.
Crear tests SQL para funciones PL/Java instaladas en PostgreSQL.
Validar entradas normales, nulas, inválidas, límites y errores esperados.
Probar triggers con INSERT, UPDATE, DELETE, rollback y cargas masivas.
Comparar resultados con implementación de referencia en SQL o Java externo.
Usar contenedores para ejecutar tests en bases limpias.
Automatizar instalación de JAR, classpath y migraciones en tests.
Evitar desplegar funciones PL/Java sin pruebas de regresión.
Crear fixtures y datasets representativos.
Realizar ejercicio de suite completa de tests Java + SQL.
Versionar código Java, SQLJ descriptors, scripts SQL y migraciones.
Gestionar cambios de firma, tipo de retorno, esquema, permisos y JAR.
Usar herramientas como Flyway, Liquibase, Sqitch o migraciones propias.
Instalar, actualizar y retirar JARs con procedimientos reproducibles.
Coordinar `install_jar`, `replace_jar`, `remove_jar` y classpath por esquema.
Preparar rollback cuando una versión de JAR falla.
Evitar reemplazar JARs en producción sin tests y plan de reversión.
Documentar versión de PostgreSQL, Java, PL/Java, Maven y dependencias.
Crear release notes para funciones críticas.
Realizar ejercicio de migración de versión de una función PL/Java.
Crear imagen Docker con PostgreSQL, PL/Java, JDK y Maven.
Preparar Docker Compose con base, extensión, esquemas, datos y tests.
Compilar JAR en pipeline y desplegarlo en una base temporal.
Ejecutar tests Java y SQL como parte del CI/CD.
Validar classpath, instalación de JAR y funciones expuestas.
Integrar análisis de dependencias y vulnerabilidades.
Separar configuración de desarrollo, test, staging y producción.
Gestionar secretos sin incrustarlos en código Java ni scripts SQL.
Publicar artefactos JAR, reportes de tests y documentación.
Realizar ejercicio de pipeline completo para PL/Java.
Registrar errores, tiempos, frecuencia y uso de funciones PL/Java críticas.
Diseñar mensajes útiles para DBA, desarrollo y soporte.
Integrar logs PostgreSQL con sistemas corporativos de observabilidad.
Medir impacto de funciones en consultas lentas y bloqueos.
Crear tablas de auditoría para triggers críticos.
Evitar logs con datos sensibles, secretos o payloads completos innecesarios.
Relacionar función, JAR, versión, tabla, owner y proceso de negocio.
Crear runbooks para errores de JVM, classpath, JAR, permisos y rendimiento.
Revisar periódicamente funciones sin uso o con coste elevado.
Realizar ejercicio de diagnóstico operativo de una incidencia PL/Java.
Definir si PL/Java se permite para nuevo desarrollo, mantenimiento o solo sistemas legacy.
Crear catálogo de funciones, triggers, JARs, classpaths, owners y dependencias.
Clasificar funciones por criticidad, datos tratados, frecuencia de uso y riesgo.
Establecer revisión obligatoria por DBA, backend, seguridad y arquitectura.
Crear estándar de naming, empaquetado, documentación, tests y despliegue.
Definir política de dependencias Java aprobadas.
Revisar permisos de `java`, `javau`, esquemas y roles.
Crear ciclo de vida: propuesta, desarrollo, test, aprobación, despliegue, mantenimiento y retirada.
Evitar crecimiento descontrolado de lógica Java dentro de PostgreSQL.
Realizar ejercicio de política corporativa de uso de PL/Java.
Identificar funciones candidatas a PL/pgSQL por ser lógica SQL simple.
Migrar parsing o validación compleja a PL/Python o PL/Rust cuando encaja mejor.
Mover lógica de negocio extensa a servicios Java externos, jobs o APIs.
Sustituir triggers por constraints, generated columns, reglas SQL o pipelines cuando procede.
Crear pruebas de equivalencia antes de migrar.
Diseñar migración por fases: inventario, cobertura, shadow run, corte y retirada.
Evitar reescrituras sin entender comportamiento real de producción.
Documentar diferencias funcionales y riesgos aceptados.
Preparar rollback por función migrada.
Realizar ejercicio de migración de función PL/Java a PL/pgSQL o servicio Java externo.
Diagnosticar errores de `CREATE EXTENSION pljava` por sesión, rutas, librerías o configuración.
Resolver fallos de `pljava.libjvm_location` y carga de JVM.
Corregir problemas de `pljava.module_path` y módulos no encontrados.
Investigar errores de `install_jar`, classpath, descriptor SQLJ o clases ausentes.
Corregir tipos de retorno incompatibles entre SQL y Java.
Diagnosticar excepciones Java propagadas a PostgreSQL.
Resolver conflictos de dependencias o versiones de JAR.
Analizar degradaciones por SPI/JDBC repetitivo o triggers pesados.
Crear checklist de diagnóstico antes de escalar a DBA o plataforma.
Realizar ejercicio de reparación de entorno PL/Java con fallos provocados.
Diseñar validación de datos maestros con reglas complejas y reutilizables.
Normalizar textos, identificadores, códigos, referencias y formatos heredados.
Procesar estructuras JSON o payloads de integraciones empresariales.
Crear triggers de auditoría enriquecida en tablas críticas.
Implementar cálculos especializados ya existentes en librerías Java internas.
Apoyar migración de lógica histórica desde bases o aplicaciones Java legacy.
Crear funciones de scoring o clasificación ligera con reglas deterministas.
Integrar lógica cercana al dato sin abrir llamadas de red desde PostgreSQL.
Evaluar cada caso frente a SQL, PL/pgSQL, PL/Python, PL/Rust y servicio externo.
Realizar ejercicio de clasificación de casos viables, dudosos y no recomendables.
Diseñar una solución PostgreSQL con PL/Java para validación, transformación, auditoría y procesamiento avanzado.
Preparar entorno reproducible con PostgreSQL, PL/Java, JDK, Maven, Docker y datos de prueba.
Configurar `pljava.libjvm_location`, `pljava.module_path` y `CREATE EXTENSION pljava`.
Crear roles, esquemas, permisos y política mínima para `java` y `javau`.
Crear proyecto Maven con paquetes Java, tests, dependencias y build reproducible.
Implementar función escalar Java para normalización de textos, códigos o identificadores.
Implementar función Java para validación de JSON o estructura semiestructurada.
Implementar función que devuelve resultado estructurado o tabular.
Usar JDBC interno para consultar tabla auxiliar con `PreparedStatement`.
Implementar trigger `BEFORE` para validar y modificar datos antes de inserción o actualización.
Implementar trigger `AFTER` para auditoría controlada de cambios relevantes.
Añadir gestión robusta de excepciones, mensajes claros y sin exposición de datos sensibles.
Generar JAR con SQLJ deployment descriptor y revisar instrucciones de instalación.
Instalar JAR mediante `sqlj.install_jar` y configurar classpath con `sqlj.set_classpath`.
Crear tests unitarios Java y tests SQL de integración sobre funciones y triggers.
Medir rendimiento con `EXPLAIN ANALYZE` y comparar con alternativa SQL o PL/pgSQL.
Revisar dependencias Java, licencias, vulnerabilidades, classpath y riesgos de seguridad.
Preparar scripts de migración, actualización, rollback y retirada del JAR.
Documentar arquitectura, funciones, triggers, permisos, JARs, classpath, runbook y troubleshooting.
Presentar la solución final defendiendo rendimiento, seguridad, mantenibilidad, trazabilidad y gobierno.
Pensado para quienes deben dominar PL/Java en su día a día
Desarrolladores Java y backend
Este curso encaja con desarrolladores que trabajan con Java, PostgreSQL y sistemas empresariales donde parte de la lógica puede ejecutarse cerca del dato. Aprenderán a crear funciones, empaquetarlas en JAR, desplegarlas y revisarlas con criterio profesional.
Administradores PostgreSQL y DBAs
Los DBAs podrán evaluar cuándo permitir PL/Java, cómo instalarlo, cómo controlar lenguajes `java` y `javau`, cómo gestionar permisos, cómo revisar rendimiento y cómo reducir riesgos en entornos productivos.
Arquitectos de software y datos
Los arquitectos podrán decidir cuándo usar PL/Java, cuándo mantenerlo, cuándo migrarlo y cuándo externalizar la lógica a servicios Java, PL/pgSQL, PL/Python, PL/Rust, pgrx o pipelines de datos.
Equipos de data engineering e integración
Los perfiles de datos podrán usar PL/Java para parsing, validación, transformación, enriquecimiento, normalización y lógica cercana al dato, siempre que exista justificación técnica y controles adecuados.
Equipos DevOps, plataforma y sistemas
Los perfiles de plataforma aprenderán a preparar entornos reproducibles, configurar JVM, compilar JARs, desplegar PL/Java, gestionar classpaths, crear pipelines y operar la extensión con observabilidad.
Equipos de seguridad y compliance técnico
Los perfiles de seguridad podrán analizar riesgos de ejecutar Java en PostgreSQL, revisar política de seguridad, permisos, ficheros, classpath, dependencias, Java 24+, auditoría y gobierno de funciones.
Empresas que ya han formado a sus equipos
Experiencias reales de equipos que ya han trabajado con nosotros.
+16
años de liderazgo
+3.500
empresas formadas
Nuestra empresa decidió contratar formación con Imagina aprovechando los créditos de FUNDAE, y fue una gran decisión. La modalidad online nos permitió adaptar los horarios a nuestro equipo. La formación ha sido práctica, clara y útil para el día a día. Es sencillo de gestionar y los resultados son excepcionales.
Hugo Gutiérrez
Analista Financiero
Gracias a Imagina, la eficiencia de nuestras sesiones de capacitación ha mejorado drásticamente. Es sencillo de usar y los resultados son excepcionales.
Luis Martínez
Administrativo
Gracias al aula virtual de Imagina siempre son capaces de adaptar los cursos a nuestras necesidades. El contenido fue muy completo y práctico.
Elena Pérez
Responsable de Recursos Humanos
Mejor de lo esperado, la modalidad online se adapta a nuestros horarios. La ayuda con la bonificación FUNDAE hizo todo más fácil. Práctico y necesario.
Alejandro Sánchez
Director de Operaciones
Nuestra empresa decidió contratar formación con Imagina aprovechando los créditos de FUNDAE, y fue una gran decisión. La modalidad online nos permitió adaptar los horarios a nuestro equipo. La formación ha sido práctica, clara y útil para el día a día. Es sencillo de gestionar y los resultados son excepcionales.
Hugo Gutiérrez
Analista Financiero
Gracias a Imagina, la eficiencia de nuestras sesiones de capacitación ha mejorado drásticamente. Es sencillo de usar y los resultados son excepcionales.
Luis Martínez
Administrativo
Gracias al aula virtual de Imagina siempre son capaces de adaptar los cursos a nuestras necesidades. El contenido fue muy completo y práctico.
Elena Pérez
Responsable de Recursos Humanos
Mejor de lo esperado, la modalidad online se adapta a nuestros horarios. La ayuda con la bonificación FUNDAE hizo todo más fácil. Práctico y necesario.
Alejandro Sánchez
Director de Operaciones
480.000 alumnos formados en Imagina
Resolvemos todas tus dudas sobre nuestra formación en PL/Java
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.
PL/Java es una extensión para PostgreSQL que permite escribir funciones, triggers y procedimientos usando Java dentro del backend de la base de datos.
No. PostgreSQL incluye varios lenguajes procedurales en su distribución base, pero PL/Java es una extensión externa.
No. PL/pgSQL sigue siendo la opción natural para mucha lógica SQL. PL/Java conviene cuando Java aporta una ventaja clara.
Sí. Se requiere base sólida de Java, clases, métodos estáticos, excepciones, Maven, dependencias y JDBC.
Sí. Es imprescindible conocer SQL, funciones, triggers, transacciones, permisos, tipos de datos, índices y administración básica.
Normalmente se compila código Java en un JAR con descriptor SQLJ y se instala en PostgreSQL usando funciones del esquema `sqlj`.
Es una función de PL/Java usada para cargar un JAR en PostgreSQL y ejecutar las instrucciones de despliegue asociadas.
Permite asociar JARs a un esquema para que las funciones PL/Java encuentren las clases Java necesarias.
`java` es el lenguaje con permisos controlados para usuarios autorizados. `javau` es la variante más privilegiada y debe reservarse a superusuarios o casos excepcionales.
Sí. PL/Java proporciona una conexión JDBC interna para ejecutar consultas dentro de PostgreSQL, con las cautelas de transacción y rendimiento correspondientes.
Sí. El curso incluye triggers `BEFORE`, `AFTER`, auditoría, validación, normalización y control de cambios.
Sí, pero deben gestionarse con mucho cuidado: versiones, licencias, vulnerabilidades, classpath, tamaño, comportamiento y permisos.
Los cambios en el modelo de seguridad de Java obligan a revisar cuidadosamente la ejecución de PL/Java, especialmente si no hay policy enforcement.
Sí. Una función PL/Java mal situada en consultas masivas o triggers frecuentes puede degradar rendimiento, locks y latencia.
Sí. Se trabaja entorno reproducible, Maven, JAR, instalación, tests, migraciones, pipeline y validación automatizada.
Puede servir, pero no debería elegirse por defecto. Debe justificarse frente a PL/pgSQL, servicios Java externos, PL/Python, PL/Rust u otras alternativas.
Una solución PostgreSQL con PL/Java que incluye JAR, funciones, triggers, JDBC interno, permisos, tests, Docker, migraciones y documentación técnica.
Sí. Puede adaptarse usando código Java, funciones, triggers o datos anonimizados de entornos corporativos.
Sí, esta formación puede ser bonificable hasta el 100% a través de FUNDAE, siempre que la empresa disponga de crédito formativo suficiente y se cumplan los requisitos de comunicación, asistencia y documentación exigidos.
¿Tienes dudas?
Estamos aqui para ayudarte
PL/Java es una extensión para PostgreSQL que permite escribir funciones, triggers y procedimientos usando Java dentro del backend de la base de datos.
¿Tienes dudas?
Estamos aqui para ayudarte
No. PostgreSQL incluye varios lenguajes procedurales en su distribución base, pero PL/Java es una extensión externa.
¿Tienes dudas?
Estamos aqui para ayudarte
No. PL/pgSQL sigue siendo la opción natural para mucha lógica SQL. PL/Java conviene cuando Java aporta una ventaja clara.
¿Tienes dudas?
Estamos aqui para ayudarte
Sí. Se requiere base sólida de Java, clases, métodos estáticos, excepciones, Maven, dependencias y JDBC.
¿Tienes dudas?
Estamos aqui para ayudarte
Sí. Es imprescindible conocer SQL, funciones, triggers, transacciones, permisos, tipos de datos, índices y administración básica.
¿Tienes dudas?
Estamos aqui para ayudarte
Normalmente se compila código Java en un JAR con descriptor SQLJ y se instala en PostgreSQL usando funciones del esquema `sqlj`.
¿Tienes dudas?
Estamos aqui para ayudarte
Es una función de PL/Java usada para cargar un JAR en PostgreSQL y ejecutar las instrucciones de despliegue asociadas.
¿Tienes dudas?
Estamos aqui para ayudarte
Permite asociar JARs a un esquema para que las funciones PL/Java encuentren las clases Java necesarias.
¿Tienes dudas?
Estamos aqui para ayudarte
`java` es el lenguaje con permisos controlados para usuarios autorizados. `javau` es la variante más privilegiada y debe reservarse a superusuarios o casos excepcionales.
¿Tienes dudas?
Estamos aqui para ayudarte
Sí. PL/Java proporciona una conexión JDBC interna para ejecutar consultas dentro de PostgreSQL, con las cautelas de transacción y rendimiento correspondientes.
¿Tienes dudas?
Estamos aqui para ayudarte
Sí. El curso incluye triggers `BEFORE`, `AFTER`, auditoría, validación, normalización y control de cambios.
¿Tienes dudas?
Estamos aqui para ayudarte
Sí, pero deben gestionarse con mucho cuidado: versiones, licencias, vulnerabilidades, classpath, tamaño, comportamiento y permisos.
¿Tienes dudas?
Estamos aqui para ayudarte
Los cambios en el modelo de seguridad de Java obligan a revisar cuidadosamente la ejecución de PL/Java, especialmente si no hay policy enforcement.
¿Tienes dudas?
Estamos aqui para ayudarte
Sí. Una función PL/Java mal situada en consultas masivas o triggers frecuentes puede degradar rendimiento, locks y latencia.
¿Tienes dudas?
Estamos aqui para ayudarte
Sí. Se trabaja entorno reproducible, Maven, JAR, instalación, tests, migraciones, pipeline y validación automatizada.
¿Tienes dudas?
Estamos aqui para ayudarte
Puede servir, pero no debería elegirse por defecto. Debe justificarse frente a PL/pgSQL, servicios Java externos, PL/Python, PL/Rust u otras alternativas.
¿Tienes dudas?
Estamos aqui para ayudarte
Una solución PostgreSQL con PL/Java que incluye JAR, funciones, triggers, JDBC interno, permisos, tests, Docker, migraciones y documentación técnica.
¿Tienes dudas?
Estamos aqui para ayudarte
Sí. Puede adaptarse usando código Java, funciones, triggers o datos anonimizados de entornos corporativos.
¿Tienes dudas?
Estamos aqui para ayudarte
Sí, esta formación puede ser bonificable hasta el 100% a través de FUNDAE, siempre que la empresa disponga de crédito formativo suficiente y se cumplan los requisitos de comunicación, asistencia y documentación exigidos.
¿Tienes dudas?
Estamos aqui para ayudarte
Descubre nuestros tutoriales
Qué es Microsoft Power Automate y para qué sirve
November 05, 2025Descubre Que es Microsoft Power Automate o Microsoft Flow: Guía Completa de la Herramienta de Automatización de Tareas de Microsoft
¿Qué es Kali Linux y para qué se utiliza?
June 17, 2025Descubre cómo instalar Kali Linux fácilmente y empieza a usar esta herramienta esencial para pruebas de penetración y análisis forense digital.
Top 5 Cursos Bonificados para Trabajadores en 2025
June 09, 2025Conoce los cursos bonificados para trabajadores 2025 más demandados y cómo puedes inscribir a tus empleados para aprovechar los créditos formativos de FUNDAE.
5 Cursos Obligatorios para cualquier Empresa en 2025
May 26, 2025Conoce los cursos obligatorios para empresas 2025 y cómo asegurar que tu organización cumpla con las normativas actuales sin riesgos de sanciones.
Cursos Bonificados por Fundación Tripartita en 2025
May 05, 2025Descubre los mejores cursos bonificados para empresas en 2025 por la Fundación Tripartita. Aumenta la productividad de tu equipo sin costes adicionales.
Diseñemos hoy el curso que tu empresa necesita
Cuéntanos tus objetivos de negocio y prepararemos una propuesta formativa bonificable totalmente ad hoc