Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment décompresser un fichier en PL/SQL ?

Dans mon article précédent, j'ai donné un exemple pour compresser un fichier en utilisant PL/SQL dans Oracle, et dans cet article, j'explique comment extraire un fichier ZIP ou décompresser un fichier en PL/SQL en utilisant le même Alexandria PL /Package utilitaire SQL.

Suivez ces étapes pour décompresser (extraire) un fichier ZIP à l'aide de PL/SQL dans Oracle

  1. Cliquez sur Télécharger le package d'utilitaires Alexandria PL/SQL pour télécharger le package en premier.
  2. Ensuite, extrayez le fichier ZIP et localisez les quatre fichiers mentionnés ci-dessous dans le répertoire alexandria-plsql-utils-master\ora\ :
  • zip_util_pkg.pks
  • zip_util_pkg.pkb
  • file_util_pkg.pks
  • file_util_pkg.pkb
  1. Installez ces scripts dans votre schéma de base de données Oracle et lors de l'installation, s'il y a une erreur due à un objet manquant, recherchez-les dans le répertoire alexandria-plsql-utils-master\extras et installez-le.
  2. Créez maintenant un objet de répertoire dans Oracle pour l'emplacement de vos fichiers ZIP, comme illustré dans l'exemple ci-dessous.
Create OR Replace Directory UNZIP_FILES as 'c:\my_zip_files';

Vous pouvez maintenant extraire un fichier ZIP en utilisant PL/SQL, comme indiqué dans l'exemple ci-dessous.

Décompressez un fichier dans un exemple 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;
/

Vérifiez l'emplacement du dossier pour l'objet de répertoire UNZIP_FILES et vous trouverez les fichiers extraits.

Voir aussi :

  • Exporter des données vers un fichier Excel dans Oracle
  • Créer un rapport PDF à l'aide de PL/SQL