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…

Share This