sql >> Base de Datos >  >> RDS >> Oracle

Exportar datos a Excel desde Oracle Table usando PL SQL

A continuación se proporciona un ejemplo para exportar datos a Excel desde una tabla de Oracle utilizando PL SQL. Puede realizar esta tarea con la ayuda del paquete xlsx_builder_pkg , que puedes descargar desde GITHUB usando el siguiente enlace haga clic aquí. Después de descargar el paquete, extraiga el archivo zip y ubique el paquete en esta ruta \alexandria-plsql-utils-master\ora\. Encontrará los dos archivos xlsx_builder_pkg.pksxlsx_builder_pkg.pkb .

Hay muchos otros scripts de utilidades también en el archivo zip descargado, que puede usar para su desarrollo. Daré más ejemplos de esos scripts en mis otras publicaciones.

Instale estos dos scripts en el esquema de su base de datos y cree un objeto de directorio para archivos xlsx de Excel (si aún no lo ha hecho) como se muestra en el siguiente ejemplo:

Crear objeto de directorio de Oracle

Create OR Replace Directory excel_files as  'c:\excel_files';

Su directorio de base de datos ahora está creado y ahora puede crear un archivo de Excel desde una tabla de Oracle usando PL SQL. A continuación se muestra el ejemplo:

Exportar datos a Excel desde Oracle Table usando PL SQL

BEGIN
xlsx_builder_Pkg.clear_workbook;
xlsx_builder_pkg.new_sheet ('emp');
xlsx_builder_pkg.query2sheet (p_sql => 'select * from emp', p_sheet => 1);
xlsx_builder_pkg.save ('EXCEL_FILES', 'emp.xlsx');
END;

El ejemplo anterior exportará todos los datos de la tabla emp a un archivo de Excel con una hoja llamada emp. Tenga en cuenta que el procedimiento query2sheet tiene dos parámetros, uno p_sql para la declaración de selección y el segundo p_sheet es el número de hoja. Como en el ejemplo, estamos creando solo una hoja con el nombre emp, por lo que pasaremos 1 para el parámetro p_sheet. Puede crear varias hojas con datos. Vea el siguiente ejemplo:

BEGIN
xlsx_builder_Pkg.clear_workbook;
xlsx_builder_pkg.new_sheet ('emp');
xlsx_builder_pkg.query2sheet (p_sql => 'select * from emp', p_sheet => 1);
xlsx_builder_pkg.new_sheet ('dept');
xlsx_builder_pkg.query2sheet (p_sql => 'select deptno, dname from dept where deptno = 20',
 p_sheet => 2);
xlsx_builder_pkg.save ('EXCEL_FILES', 'emp.xlsx');
END;

Esto exportará los datos de la tabla emp a la hoja emp y de la tabla de departamento a la hoja de departamento en un archivo de Excel llamado emp.xlsx. Puede estudiar más este paquete y realizar más tareas. También daré más ejemplos de ello.