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

Como descompactar um arquivo em PL/SQL?


Na minha postagem anterior, dei um exemplo para ZIP um arquivo usando PL/SQL no Oracle e, nesta postagem, estou explicando como extrair um arquivo ZIP ou descompactar um arquivo em PL/SQL usando o mesmo Alexandria PL /SQL pacote de utilitários.

Siga estes passos para descompactar (extrair) um arquivo ZIP usando PL/SQL no Oracle

  1. Clique em Download the Alexandria PL/SQL Utility Package para fazer download do pacote primeiro.
  2. Em seguida, extraia o arquivo ZIP e localize os quatro arquivos mencionados abaixo no diretório alexandria-plsql-utils-master\ora\:
  • zip_util_pkg.pks
  • zip_util_pkg.pkb
  • file_util_pkg.pks
  • file_util_pkg.pkb
  1. Instale esses scripts no seu Oracle Database Schema e, durante a instalação, se houver um erro devido à falta de objeto, encontre no diretório alexandria-plsql-utils-master\extras e instale-o.
  2. Agora crie um objeto de diretório no Oracle para o local de seus arquivos ZIP, conforme mostrado no exemplo abaixo.
Create OR Replace Directory UNZIP_FILES as 'c:\my_zip_files';

Agora você pode extrair um arquivo ZIP usando PL/SQL, conforme mostrado no exemplo abaixo.

Descompacte um arquivo no exemplo de PL/SQL

DECLARE
fl zip_util_pkg.t_file_list;
l_file BLOB;
BEGIN
/* specify the directory object and your ZIP file to get_file_list function */
fl := zip_util_pkg.get_file_list ('UNZIP_FILES', 'plsql_3.zip');

IF fl.COUNT () > 0
THEN
FOR i IN fl.FIRST .. fl.LAST
LOOP

l_file := zip_util_pkg.GET_FILE ('UNZIP_FILES', 'plsql_3.zip', fl (i));

file_util_pkg.save_blob_to_file ('UNZIP_FILES', fl (i), l_file);
END LOOP;
END IF;
END;
/

Verifique o local da pasta para o objeto de diretório UNZIP_FILES e você encontrará os arquivos extraídos.

Veja também:

  • Exportar dados para arquivo do Excel no Oracle
  • Criar relatório PDF usando PL/SQL