sql >> Database >  >> RDS >> Oracle

Hoe een bestand uitpakken in PL/SQL?

In mijn vorige bericht heb ik een voorbeeld gegeven om een ​​ZIP-bestand te zippen met PL/SQL in Oracle, en in dit bericht leg ik uit hoe je een ZIP-bestand uitpakt, of een bestand uitpakt in PL/SQL met dezelfde Alexandria PL /SQL-hulpprogrammapakket.

Volg deze stappen om een ​​ZIP-bestand uit te pakken (uitpakken) met PL/SQL in Oracle

  1. Klik op Download het Alexandria PL/SQL-hulpprogrammapakket om het pakket eerst te downloaden.
  2. Pak vervolgens het ZIP-bestand uit en zoek de onderstaande vier bestanden op in de directory alexandria-plsql-utils-master\ora\:
  • zip_util_pkg.pks
  • zip_util_pkg.pkb
  • file_util_pkg.pks
  • file_util_pkg.pkb
  1. Installeer deze scripts in uw Oracle Database Schema en als er tijdens de installatie een fout optreedt vanwege een ontbrekend object, zoek dan in de directory alexandria-plsql-utils-master\extras en installeer het.
  2. Maak nu een directory-object in Oracle voor de locatie van uw ZIP-bestanden, zoals in onderstaand voorbeeld.
Create OR Replace Directory UNZIP_FILES as 'c:\my_zip_files';

U kunt nu een ZIP-bestand uitpakken met PL/SQL, zoals in onderstaand voorbeeld.

Een bestand uitpakken in PL/SQL-voorbeeld

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;
/

Controleer de maplocatie voor het UNZIP_FILES-mapobject en u zult de uitgepakte bestanden vinden.

Zie ook:

  • Gegevens exporteren naar Excel-bestand in Oracle
  • PDF-rapport maken met PL/SQL
  1. Omgaan met trage zoekopdrachten met PostgreSQL

  2. Selecteer gegevens tussen een datum/tijdbereik

  3. pyspark gebruiken om verbinding te maken met PostgreSQL

  4. Hoe een enorme tabelgegevens naar een andere tabel in SQL Server te kopiëren?