Seleccionar página

APEX_DATA_LOADING

apex_data_loading

Escrito por: Eddie Molina

Oracle ACE Pro. Oracle APEX Cloud Developer Certified Professional. Presidente de ORAUGCRC (Grupo de Usuarios Oracle de Costa Rica). Miembro de líderes de LAOUC. Conferencista, consultor, desarrollador y capacitador en tecnologías Oracle, especialmente Oracle Application Express con más de 30 años de experiencia.

16/04/2022

El paquete APEX_DATA_LOADING proporciona la capacidad de cargar datos llamando a una definición de carga de datos de la aplicación. Esto se puede usar en lugar de la carga de datos nativos.

Este paquete usa los siguientes tipos de datos:

type t_data_load_result is record(
     processed_rows PLS_INTEGER,
     error_rows PLS_INTEGER );

El paquete está compuesto por las siguientes funciones.

Función GET_FILE_PROFILE

Esta función devuelve el perfil del archivo (determinado por la definición de carga de datos) en formato JSON.

La sintaxis de la función es:

APEX_DATA_LOADING.GET_FILE_PROFILE (
     p_application_id IN NUMBER DEFAULT apex_application.g_flow_id,
     p_static_id IN VARCHAR2 )
RETURN CLOB;

Donde:

Parámetro Descripción
p_application_id Identificador de la aplicación que contiene la definición de carga de datos.
p_static_id Identificador estático de la definición de carga de datos a ejecutar.

Un ejemplo del uso de esta función es:

select p.line_number,
           p.col001, p.col002, p.col003, p.col004, p.col005, p.col006, p.col007, p.col008, p.col009, p.col010
from apex_application_temp_files f,
          table( apex_data_parser.parse(
                           p_content => f.blob_content,
                           p_file_name => f.filename,
                           p_file_profile => apex_data_loading.get_file_profile( p_static_id =>
                                  ‘my-load-definition’),
                           p_max_rows => 100 ) ) p
where f.name = :P1_FILE

 

Función LOAD_DATA Firma 1

Esta función carga datos de archivo y devuelve información de estado de carga que contiene filas procesadas y filas de errores.

La sintaxis de la función es:

APEX_DATA_LOADING.LOAD_DATA (
     p_application_id IN NUMBER DEFAULT apex_application.g_flow_id,
     p_static_id IN VARCHAR2,
     p_data_to_load IN BLOB,
     p_xlsx_sheet_name IN VARCHAR2 DEFAULT NULL )
RETURN t_data_load_result;

Donde:

Parámetro Descripción
p_application_id Identificador de la aplicación que contiene la definición de carda de datos.
p_static_id Identiificador estático de la definición de carga de datos a ejecutar.
p_data_to_load Archivo BLOB a ser cargado.
p_xlsx_sheet_name Para archivos XLSX, la hoja de cálculo a extraer.

Un ejemplo del uso de esta función es:

DECLARE
     l_file blob;
     l_load_result apex_data_loading.t_data_load_result;
BEGIN
     apex_session.create_session( 100, 1, ‘ADMIN’ );
     SELECT blob_content
          INTO l_file
        FROM apex_application_temp_files
     WHERE name = :PX_FILEBROWSE_ITEM;
     l_load_result := apex_data_loading.load_data (
          p_static_id => ‘my-load-definition’,
          p_data_to_load => l_file );
     dbms_output.put_line( ‘Processed ‘ || l_load_result.processed_rows || ‘ rows.’);
END;

 

Función LOAD_DATA Firma 2

Esta función carga datos CLOB y devuelve información de estado de carga que contiene filas procesadas y filas de errores.

La sintaxis de la función es:

APEX_DATA_LOADING.LOAD_DATA (
     p_application_id IN NUMBER DEFAULT apex_application.g_flow_id,
     p_static_id IN VARCHAR2,
     p_data_to_load IN CLOB,
     p_xlsx_sheet_name IN VARCHAR2 DEFAULT NULL )
RETURN t_data_load_result;

Donde:

Parámetro Descripción
p_application_id Identificador de la aplicación que contiene la definición de carga de datos.
p_static_id Identificador estático de la definición de carga de datos a ejecutar.
p_data_to_load Datos CLOB a cargar.
p_xlsx_sheet_name Para archivos XLSX, la hoja de cálculo a extraer.

Un ejemplo del uso de esta función es:

DECLARE
     l_load_result apex_data_loading.t_data_load_result;
BEGIN
     apex_session.create_session( 100, 1, ‘ADMIN’ );

     l_load_result := apex_data_loading.load_data (
          p_static_id => ‘my-load-definition’,
          p_data_to_load => :PX_DATA );
     dbms_output.put_line( ‘Processed ‘ || l_load_result.processed_rows || ‘ rows.’);
END;

 

También te puede gustar…

APEX 26.1 Nuevas APIs

APEX 26.1 Nuevas APIs

Continuemos conociendo un poco más de las cosas nuevas que trae la versión 26.1 de Oracle Application Express. En esta...

JSON y APEX_JSON

JSON y APEX_JSON

Con la llegada de APEX 26.1 hace apenas dos semanas y las nuevas funcionalidades que ofrece, cobra notoriedad el...

La nueva cara de APEX

La nueva cara de APEX

Hace apenas unos días que fue liberada la versión 26.1 de APEX. Una versión que va a marcar un antes y un después en...

Share This