SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
Programando PL/SQL
en APEX
Daniel Bozzolo
UYOUG
daniel.bozzolo@logos.com.uy
Sobre mi
 Miembro del Grupo de Usuarios
Uruguay
 Socio de Logos Consulting SRL
 20+ años de experiencia en
herramientas Oracle, SQL, PL/SQL
Forms y Reports
 7+ de experiencia en APEX
 12+ Consultor Técnico Oracle eBS
APEX es una herramienta RAD
 Desarrollo rápido
o
Desarrollo apurado ?
• Varios lugares donde escribir código
PL/SQL dentro de APEX
Qué es PL/SQL?
 Es un lenguaje propietario de Oracle
 Se puede escribir en clientes y en
el servidor
(Ejemplos: Forms, Reports, APEX,
paquetes almacenados en la Base de
Datos)
Características
 Podemos definir el PL/SQL como un
conjunto de sentencias que se
agrupan en bloques
• Bloques Anónimos
• Bloques Nominados
Bloques Anónimos
 Tienen una estructura predefinida
DECLARE
--- declaración de variables, cursores
BEGIN
sentencias;
EXCEPTION
WHEN others THEN
-- manejo de errores;
END;
Bloques Nominados
 Paquetes
• Funciones
• Procedimientos
 Funciones
 Procedimientos
Bloques Nominados vs Anónimos
 Nominados
• Son reutilizables
• Están compilados
• Sus objetos validados
• En general van del lado de la Base de Datos
 Anónimos
• Pueden tener errores de validación
• Útiles cuando interactúan con la UI
Dónde se escribe PL/SQL en
APEX?
APPLICATION PROCESS
Dónde se escribe PL/SQL en
APEX?
APPLICATION PROCESS
•Se escribe código plsql para ser ejecutado por
ejemplo ON-DEMAND
•Ejecutar plsql para modificar datos en la página
sin necesidad de un submit
Dónde se escribe PL/SQL en
APEX?
El proceso estandar de Insert
Update Delete
Dónde se escribe PL/SQL en
APEX?
El proceso estandar de Insert Update
Delete – puede ser reemplazado
Dónde se escribe PL/SQL en
APEX?
El proceso estandar de Insert Update
Delete – puede ser reemplazado
Dónde se escribe PL/SQL en
APEX?
El proceso estandar de Insert Update
Delete – puede ser reemplazado
Dónde se escribe PL/SQL en APEX?
El proceso estandar de Insert Update
Delete – puede ser reemplazado
Dónde se escribe PL/SQL en
APEX?
El proceso estandar de Insert Update
Delete – puede ser reemplazado
Dónde se escribe PL/SQL en
APEX?
Reportes
Dónde se escribe PL/SQL en
APEX?
PAGE PROCESS
Dónde se escribe PL/SQL en
APEX?
VALIDATIONS
Dónde se escribe PL/SQL en
APEX?
Dynamic Actions
Como escribimos el código PL/SQL
 Siempre escribir un bloque PL/SQL
anónimo, aún cuando llamemos
funciones o procedimientos de la BD
 Si se trata de operaciones sobre
la BD crear paquetes y funciones
o procedimientos
 Utilizar editores de PL para escribir el
código y pegarlo donde corresponda
en APEX
Qué herramienta utilizamos para
programar PL/SQL ?
 PLSQL Developer
 TOAD
 SQL Developer
 Otros
Cuál utilizar para APEX ?
SQL Developer y APEX
 Es gratuita
 Es de Oracle
 Tiene una entrada específica para
APEX
 Permite el deploy en la nube de
Oracle
SQL Developer y APEX
SQL Developer y APEX
ACCIONES CON
SQLDEVELOPER
 Cambiar Páginas
 Exportar
 Refactor
Nested Tables – Varrays - Arrays
 Almacenamiento de un número
variable de items en una estructura
temporal
 Persisten en la sesión
 Las páginas en APEX pueden tener
múltiples sesiones
 Tampoco se pueden utilizar tablas
temporales
 SOLUCION
COLLECTIONS
 Almacenamiento de un número
variable de items en una estructura
temporal
 Persisten en la sesión de usuario
 No es necesario administrar los
estados de la sesión
 Son almacenadas en tablas
 Están asociadas con la sesión del
usuario logueado a la aplicación
Administración del Estado de la
Sesión
 Similarmente APEX Collections
permite compartir datos entre sus
páginas sin necesidad de chequear
cookies.
 APEX Collections pueden ser vistas
como tablas que proveen en forma
automática estados de sesión
Administración del Estado de la
Sesión
 La mayor cantidad de arquitecturas
de aplicaciones web son stateless
• No retienen la información en
subsecuentes ejecuciones
 Oracle APEX provee un mecanisno
para retener la información mediante
session Cookie almacenadas en el
browser del usuario
APEX Collections
 Almacenadas en 2 Tablas
• WWV_FLOW_COLLECTIONS$
 Información relativa a la sesión
• WWV_FLOW_COLLECTION_MEMBERS$
 Almacena los datos propiamente dichos
 A Partir de la versión 4 soporta
• Varchar2
• BLOBs
• CLOBs
• XMLTYPEs
• Numbers
• Dates
APEX Collections
 Los datos están identificados por
• COLLECTION_NAME
• SEQ_ID
Operaciones con APEX Collections
 Inicialización
• apex_collection.CREATE_COLLECTION_F
ROM_QUERY(p_collection_name =>
‘COMPRAS’, P_QUERY =>’’)
• apex_collection.CREATE_COLLECTION_F
ROM_QUERY_B(p_collection_name =>
‘COMPRAS’, P_QUERY =>’’)
• apex_collection.CREATE_OR_TRUNCATE
_COLLECTION(p_collection_name =>
‘COMPRAS’)
Operaciones con APEX Collections
 Inicialización
• El nombre de la collection debe ser
único
• Se puede controlar su existencia
• apex_collection.collection_exists(P_COL
LECTION_NAME => 'VENTAS')
Operaciones con APEX Collections
 Agregar, modificar o eliminar datos
• apex_collection.add_member(p_collecti
on_name => 'VENTAS‘, p1_c001
=>…..)
• apex_collection.delete_member(p_collec
tion_name => 'VENTAS', p_seq
=> APEX_APPLICATION.G_F15(k));
• apex_collection.update_member_attribu
te(p_collection_name => 'VENTAS‘,
p_seq => v_id,p_attr_number => 1,
p_attr_value =>
APEX_APPLICATION.G_F01(i));
Operaciones con APEX
Collections
 Resecuenciación
• Cuando borramos algún elemento es
buena práctica realizar una
resecuenciación de la Collection
 apex_collection.resequence_collection(p_coll
ection_name => 'VENTAS');
Mapping de APEX Collections
con un Reporte
 Si creamos un reporte modificable
basado en SQL
SELECT c001 "Cod. Barras",c002 "Cod. Producto",
c003 "Descripción", c004 "Cantidad",
c005 "Precio S/IVA", c006 "Dto", c007 "Precio C/IVA",
c008 "Precio Total", c009 "Accion",
apex_item.display_and_save(16, lpad(seq_id,2,'0'))
seq_id, c011 "Id Linea", c012 "iva", c013 "Dto
Manual", c014 "Cod Imp", c016 "Receta",
apex_item.checkbox(15,seq_id,DECODE(c015,
'S','CHECKED', NULL)) "Borrar"
FROM apex_collections
WHERE collection_name='VENTAS‘
ORDER BY seq_id
Mapping de APEX Collections
con un Reporte
 El mapping de columnas estará dado
por el array
 APEX_APPLICATION
• G_F01
• G_F02
• G_F03
• …….
• G_Fnn
PREGUNTAS????

Más contenido relacionado

La actualidad más candente

Share point 2010 office 2010 y owa
Share point 2010 office 2010 y owaShare point 2010 office 2010 y owa
Share point 2010 office 2010 y owaEva Ordoñez Perez
 
Raona - Migracion a SharePoint 2010
Raona - Migracion a SharePoint 2010Raona - Migracion a SharePoint 2010
Raona - Migracion a SharePoint 2010Raona
 
Presentacion sobre asp
Presentacion sobre aspPresentacion sobre asp
Presentacion sobre aspkarenReyes152
 
De Forms a Oracle Fusion Middleware
De Forms a Oracle Fusion MiddlewareDe Forms a Oracle Fusion Middleware
De Forms a Oracle Fusion MiddlewareJC_Diaz_Belmonte
 
Oracle 11g galo saquinaula
Oracle 11g galo saquinaulaOracle 11g galo saquinaula
Oracle 11g galo saquinaulaGalo Saquinaula
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XMLJuan Carlos Rubio Pineda
 
Asp .net
Asp .netAsp .net
Asp .netmellcv
 
MsCodersCamp 2014 - SharePoint Online: desarrolla tus apps en la nube
MsCodersCamp 2014 - SharePoint Online: desarrolla tus apps en la nubeMsCodersCamp 2014 - SharePoint Online: desarrolla tus apps en la nube
MsCodersCamp 2014 - SharePoint Online: desarrolla tus apps en la nubeMiguel Tabera
 
4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XML4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XMLJuan Carlos Rubio Pineda
 
Desarrollo de aplicaciones sobre plataformas flash
Desarrollo de aplicaciones sobre plataformas flashDesarrollo de aplicaciones sobre plataformas flash
Desarrollo de aplicaciones sobre plataformas flashFutura Networks
 
Mejorando interfaz de SharePoint 2010 con Silverlight 4
Mejorando interfaz de SharePoint 2010 con Silverlight 4Mejorando interfaz de SharePoint 2010 con Silverlight 4
Mejorando interfaz de SharePoint 2010 con Silverlight 4SolidQ
 
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint online
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint onlineAplicaciones Autohosted, el nuevo modelo para extender SharePoint online
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint onlineMario Cortés Flores
 
Oracle Forms
Oracle FormsOracle Forms
Oracle Formshenryjzbl
 
Introducción a SharePoint Framework
Introducción a SharePoint FrameworkIntroducción a SharePoint Framework
Introducción a SharePoint FrameworkHaaron Gonzalez
 

La actualidad más candente (20)

Share point 2010 office 2010 y owa
Share point 2010 office 2010 y owaShare point 2010 office 2010 y owa
Share point 2010 office 2010 y owa
 
Raona - Migracion a SharePoint 2010
Raona - Migracion a SharePoint 2010Raona - Migracion a SharePoint 2010
Raona - Migracion a SharePoint 2010
 
OBI11g: la versión mas esperada
OBI11g: la versión mas esperadaOBI11g: la versión mas esperada
OBI11g: la versión mas esperada
 
Presentacion sobre asp
Presentacion sobre aspPresentacion sobre asp
Presentacion sobre asp
 
De Forms a Oracle Fusion Middleware
De Forms a Oracle Fusion MiddlewareDe Forms a Oracle Fusion Middleware
De Forms a Oracle Fusion Middleware
 
Oracle 11g galo saquinaula
Oracle 11g galo saquinaulaOracle 11g galo saquinaula
Oracle 11g galo saquinaula
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Asp .net
Asp .netAsp .net
Asp .net
 
MsCodersCamp 2014 - SharePoint Online: desarrolla tus apps en la nube
MsCodersCamp 2014 - SharePoint Online: desarrolla tus apps en la nubeMsCodersCamp 2014 - SharePoint Online: desarrolla tus apps en la nube
MsCodersCamp 2014 - SharePoint Online: desarrolla tus apps en la nube
 
avanttic - webinar: WebCenter Content (07-06-2017)
avanttic - webinar: WebCenter Content (07-06-2017)avanttic - webinar: WebCenter Content (07-06-2017)
avanttic - webinar: WebCenter Content (07-06-2017)
 
4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XML4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Progress Rollbase
Progress RollbaseProgress Rollbase
Progress Rollbase
 
Desarrollo Plataforma Flash
Desarrollo Plataforma FlashDesarrollo Plataforma Flash
Desarrollo Plataforma Flash
 
Desarrollo de aplicaciones sobre plataformas flash
Desarrollo de aplicaciones sobre plataformas flashDesarrollo de aplicaciones sobre plataformas flash
Desarrollo de aplicaciones sobre plataformas flash
 
Mejorando interfaz de SharePoint 2010 con Silverlight 4
Mejorando interfaz de SharePoint 2010 con Silverlight 4Mejorando interfaz de SharePoint 2010 con Silverlight 4
Mejorando interfaz de SharePoint 2010 con Silverlight 4
 
Asp
AspAsp
Asp
 
Java DataBase Connectivity
Java DataBase ConnectivityJava DataBase Connectivity
Java DataBase Connectivity
 
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint online
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint onlineAplicaciones Autohosted, el nuevo modelo para extender SharePoint online
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint online
 
Oracle Forms
Oracle FormsOracle Forms
Oracle Forms
 
Introducción a SharePoint Framework
Introducción a SharePoint FrameworkIntroducción a SharePoint Framework
Introducción a SharePoint Framework
 

Similar a Programando PL/SQL en APEX

Yungan geovanny 6_s_ti_2
Yungan geovanny 6_s_ti_2Yungan geovanny 6_s_ti_2
Yungan geovanny 6_s_ti_2GeovannyYungan
 
APLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALESAPLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALESDarwin Durand
 
Programacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datosProgramacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datosJosé Antonio Sandoval Acosta
 
Presentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
Presentación Taller Herramientas Rendimiento DB2 en IBM i y GenexusPresentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
Presentación Taller Herramientas Rendimiento DB2 en IBM i y GenexusXavier Espinoza
 
Motor De Bases De Datos Oracle
Motor De Bases De Datos OracleMotor De Bases De Datos Oracle
Motor De Bases De Datos Oracletriana25
 
Motor De Bases De Datos Oracle
Motor De Bases De Datos OracleMotor De Bases De Datos Oracle
Motor De Bases De Datos Oracletriana25
 
Motor De Bases De Datos Oracle
Motor De Bases De Datos OracleMotor De Bases De Datos Oracle
Motor De Bases De Datos Oracletriana25
 
Introduccion a ORACLE
Introduccion a ORACLEIntroduccion a ORACLE
Introduccion a ORACLEpp guanuchi
 
Tarea1 dba ezamora
Tarea1 dba ezamoraTarea1 dba ezamora
Tarea1 dba ezamoraedzamo13
 
Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10Byron Quisquinay
 

Similar a Programando PL/SQL en APEX (20)

sesion 01_sql basico.pdf
sesion 01_sql basico.pdfsesion 01_sql basico.pdf
sesion 01_sql basico.pdf
 
Presentacion PL/SQL
Presentacion PL/SQLPresentacion PL/SQL
Presentacion PL/SQL
 
Webinar Oracle Application Express
Webinar Oracle Application ExpressWebinar Oracle Application Express
Webinar Oracle Application Express
 
Yungan geovanny 6_s_ti_2
Yungan geovanny 6_s_ti_2Yungan geovanny 6_s_ti_2
Yungan geovanny 6_s_ti_2
 
Base de Datos1
Base de Datos1Base de Datos1
Base de Datos1
 
APLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALESAPLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALES
 
Programacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datosProgramacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datos
 
Presentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
Presentación Taller Herramientas Rendimiento DB2 en IBM i y GenexusPresentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
Presentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
 
Oracle vs. sql server terminado
Oracle vs. sql server   terminadoOracle vs. sql server   terminado
Oracle vs. sql server terminado
 
Oracle vs. sql server terminado
Oracle vs. sql server   terminadoOracle vs. sql server   terminado
Oracle vs. sql server terminado
 
Motor De Bases De Datos Oracle
Motor De Bases De Datos OracleMotor De Bases De Datos Oracle
Motor De Bases De Datos Oracle
 
ORACLE
ORACLEORACLE
ORACLE
 
Motor De Bases De Datos Oracle
Motor De Bases De Datos OracleMotor De Bases De Datos Oracle
Motor De Bases De Datos Oracle
 
Motor De Bases De Datos Oracle
Motor De Bases De Datos OracleMotor De Bases De Datos Oracle
Motor De Bases De Datos Oracle
 
Introduccion a ORACLE
Introduccion a ORACLEIntroduccion a ORACLE
Introduccion a ORACLE
 
Tarea1 dba ezamora
Tarea1 dba ezamoraTarea1 dba ezamora
Tarea1 dba ezamora
 
Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10
 
Act4 castañon sergio
Act4 castañon sergioAct4 castañon sergio
Act4 castañon sergio
 
Base de datos
Base de datosBase de datos
Base de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 

Último

DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativafiorelachuctaya2
 
Cuadernillo de las sílabas trabadas.pdf
Cuadernillo de las sílabas trabadas.pdfCuadernillo de las sílabas trabadas.pdf
Cuadernillo de las sílabas trabadas.pdfBrandonsanchezdoming
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 

Último (20)

DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativa
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
Cuadernillo de las sílabas trabadas.pdf
Cuadernillo de las sílabas trabadas.pdfCuadernillo de las sílabas trabadas.pdf
Cuadernillo de las sílabas trabadas.pdf
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 

Programando PL/SQL en APEX

  • 1. Programando PL/SQL en APEX Daniel Bozzolo UYOUG daniel.bozzolo@logos.com.uy
  • 2. Sobre mi  Miembro del Grupo de Usuarios Uruguay  Socio de Logos Consulting SRL  20+ años de experiencia en herramientas Oracle, SQL, PL/SQL Forms y Reports  7+ de experiencia en APEX  12+ Consultor Técnico Oracle eBS
  • 3. APEX es una herramienta RAD  Desarrollo rápido o Desarrollo apurado ? • Varios lugares donde escribir código PL/SQL dentro de APEX
  • 4. Qué es PL/SQL?  Es un lenguaje propietario de Oracle  Se puede escribir en clientes y en el servidor (Ejemplos: Forms, Reports, APEX, paquetes almacenados en la Base de Datos)
  • 5. Características  Podemos definir el PL/SQL como un conjunto de sentencias que se agrupan en bloques • Bloques Anónimos • Bloques Nominados
  • 6. Bloques Anónimos  Tienen una estructura predefinida DECLARE --- declaración de variables, cursores BEGIN sentencias; EXCEPTION WHEN others THEN -- manejo de errores; END;
  • 7. Bloques Nominados  Paquetes • Funciones • Procedimientos  Funciones  Procedimientos
  • 8. Bloques Nominados vs Anónimos  Nominados • Son reutilizables • Están compilados • Sus objetos validados • En general van del lado de la Base de Datos  Anónimos • Pueden tener errores de validación • Útiles cuando interactúan con la UI
  • 9. Dónde se escribe PL/SQL en APEX? APPLICATION PROCESS
  • 10. Dónde se escribe PL/SQL en APEX? APPLICATION PROCESS •Se escribe código plsql para ser ejecutado por ejemplo ON-DEMAND •Ejecutar plsql para modificar datos en la página sin necesidad de un submit
  • 11. Dónde se escribe PL/SQL en APEX? El proceso estandar de Insert Update Delete
  • 12. Dónde se escribe PL/SQL en APEX? El proceso estandar de Insert Update Delete – puede ser reemplazado
  • 13. Dónde se escribe PL/SQL en APEX? El proceso estandar de Insert Update Delete – puede ser reemplazado
  • 14. Dónde se escribe PL/SQL en APEX? El proceso estandar de Insert Update Delete – puede ser reemplazado
  • 15. Dónde se escribe PL/SQL en APEX? El proceso estandar de Insert Update Delete – puede ser reemplazado
  • 16. Dónde se escribe PL/SQL en APEX? El proceso estandar de Insert Update Delete – puede ser reemplazado
  • 17. Dónde se escribe PL/SQL en APEX? Reportes
  • 18. Dónde se escribe PL/SQL en APEX? PAGE PROCESS
  • 19. Dónde se escribe PL/SQL en APEX? VALIDATIONS
  • 20. Dónde se escribe PL/SQL en APEX? Dynamic Actions
  • 21. Como escribimos el código PL/SQL  Siempre escribir un bloque PL/SQL anónimo, aún cuando llamemos funciones o procedimientos de la BD  Si se trata de operaciones sobre la BD crear paquetes y funciones o procedimientos  Utilizar editores de PL para escribir el código y pegarlo donde corresponda en APEX
  • 22. Qué herramienta utilizamos para programar PL/SQL ?  PLSQL Developer  TOAD  SQL Developer  Otros
  • 24. SQL Developer y APEX  Es gratuita  Es de Oracle  Tiene una entrada específica para APEX  Permite el deploy en la nube de Oracle
  • 27. ACCIONES CON SQLDEVELOPER  Cambiar Páginas  Exportar  Refactor
  • 28. Nested Tables – Varrays - Arrays  Almacenamiento de un número variable de items en una estructura temporal  Persisten en la sesión  Las páginas en APEX pueden tener múltiples sesiones  Tampoco se pueden utilizar tablas temporales  SOLUCION
  • 29. COLLECTIONS  Almacenamiento de un número variable de items en una estructura temporal  Persisten en la sesión de usuario  No es necesario administrar los estados de la sesión  Son almacenadas en tablas  Están asociadas con la sesión del usuario logueado a la aplicación
  • 30. Administración del Estado de la Sesión  Similarmente APEX Collections permite compartir datos entre sus páginas sin necesidad de chequear cookies.  APEX Collections pueden ser vistas como tablas que proveen en forma automática estados de sesión
  • 31. Administración del Estado de la Sesión  La mayor cantidad de arquitecturas de aplicaciones web son stateless • No retienen la información en subsecuentes ejecuciones  Oracle APEX provee un mecanisno para retener la información mediante session Cookie almacenadas en el browser del usuario
  • 32. APEX Collections  Almacenadas en 2 Tablas • WWV_FLOW_COLLECTIONS$  Información relativa a la sesión • WWV_FLOW_COLLECTION_MEMBERS$  Almacena los datos propiamente dichos  A Partir de la versión 4 soporta • Varchar2 • BLOBs • CLOBs • XMLTYPEs • Numbers • Dates
  • 33. APEX Collections  Los datos están identificados por • COLLECTION_NAME • SEQ_ID
  • 34. Operaciones con APEX Collections  Inicialización • apex_collection.CREATE_COLLECTION_F ROM_QUERY(p_collection_name => ‘COMPRAS’, P_QUERY =>’’) • apex_collection.CREATE_COLLECTION_F ROM_QUERY_B(p_collection_name => ‘COMPRAS’, P_QUERY =>’’) • apex_collection.CREATE_OR_TRUNCATE _COLLECTION(p_collection_name => ‘COMPRAS’)
  • 35. Operaciones con APEX Collections  Inicialización • El nombre de la collection debe ser único • Se puede controlar su existencia • apex_collection.collection_exists(P_COL LECTION_NAME => 'VENTAS')
  • 36. Operaciones con APEX Collections  Agregar, modificar o eliminar datos • apex_collection.add_member(p_collecti on_name => 'VENTAS‘, p1_c001 =>…..) • apex_collection.delete_member(p_collec tion_name => 'VENTAS', p_seq => APEX_APPLICATION.G_F15(k)); • apex_collection.update_member_attribu te(p_collection_name => 'VENTAS‘, p_seq => v_id,p_attr_number => 1, p_attr_value => APEX_APPLICATION.G_F01(i));
  • 37. Operaciones con APEX Collections  Resecuenciación • Cuando borramos algún elemento es buena práctica realizar una resecuenciación de la Collection  apex_collection.resequence_collection(p_coll ection_name => 'VENTAS');
  • 38. Mapping de APEX Collections con un Reporte  Si creamos un reporte modificable basado en SQL SELECT c001 "Cod. Barras",c002 "Cod. Producto", c003 "Descripción", c004 "Cantidad", c005 "Precio S/IVA", c006 "Dto", c007 "Precio C/IVA", c008 "Precio Total", c009 "Accion", apex_item.display_and_save(16, lpad(seq_id,2,'0')) seq_id, c011 "Id Linea", c012 "iva", c013 "Dto Manual", c014 "Cod Imp", c016 "Receta", apex_item.checkbox(15,seq_id,DECODE(c015, 'S','CHECKED', NULL)) "Borrar" FROM apex_collections WHERE collection_name='VENTAS‘ ORDER BY seq_id
  • 39. Mapping de APEX Collections con un Reporte  El mapping de columnas estará dado por el array  APEX_APPLICATION • G_F01 • G_F02 • G_F03 • ……. • G_Fnn