Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Exportar dados para o Excel da tabela Oracle usando PL SQL


Um exemplo é dado abaixo para exportar dados para o Excel da tabela Oracle usando PL SQL. Você pode fazer esta tarefa com a ajuda do pacote xlsx_builder_pkg , que você pode baixar do GITHUB usando o link a seguir Clique aqui. Após baixar o pacote extraia o arquivo zip e localize o pacote neste caminho \alexandria-plsql-utils-master\ora\. Você encontrará os dois arquivos xlsx_builder_pkg.pksxlsx_builder_pkg.pkb .

Há muitos outros scripts de utilitários também no arquivo zip baixado, que você pode usar para seu desenvolvimento. Darei mais exemplos desses scripts em meus outros posts.

Instale esses dois scripts em seu esquema de banco de dados e crie um objeto de diretório para arquivos xlsx do Excel (se ainda não tiver), conforme mostrado no exemplo abaixo:

Criar objeto de diretório Oracle

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

Seu diretório de banco de dados agora está criado e agora você pode criar um arquivo Excel a partir da tabela Oracle usando PL SQL. Abaixo segue o exemplo:

Exportar dados para o Excel da tabela Oracle 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;

O exemplo acima exportará todos os dados da tabela emp para o arquivo Excel com uma planilha chamada emp. Observe que o procedimento query2sheet possui dois parâmetros, um p_sql para a instrução select e o segundo p_sheet é o número da planilha. Como no exemplo, estamos criando apenas uma planilha com o nome emp, então passaremos 1 para o parâmetro p_sheet. Você pode criar várias planilhas com dados. Veja o exemplo abaixo:
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;



Isso exportará os dados da tabela emp para a planilha emp e da tabela do departamento para a planilha do departamento em um arquivo Excel chamado emp.xlsx. Você pode estudar mais este pacote e realizar mais tarefas. Também darei mais exemplos a partir dele.