sql >> Databáze >  >> RDS >> Oracle

Jak zazipovat soubor v PL/SQL?

V tomto příspěvku na blogu uvádím příklad ZIP souboru v PL/SQL. K provedení tohoto úkolu používám knihovnu Alexandria PL/SQL Util Library. Stejnou knihovnu jsem použil pro příklad exportu dat do Excelu z tabulky Oracle Database. Chcete-li vytvořit soubor ZIP pomocí PL/SQL v Oracle, postupujte podle těchto kroků.

Vytvořte soubor ZIP v Oracle pomocí PL/SQL

  1. Nejprve si stáhněte knihovnu Alexandria PL/SQL z Github pomocí následujícího odkazu Stáhnout.
  2. Po stažení soubor rozbalte a vyhledejte zip_util_pkg.pks a zip_util_pkg.pkb soubory v \alexandria-plsql-utils-master\ora\ adresář a spusťte tyto skripty ve vašem schématu databáze Oracle, abyste jej nainstalovali.
  3. Pokud jsou potřeba nějaké podporované objekty, vyhledejte je ve složce \alexandria-plsql-utils-master\ a nainstalujte je.
  4. Nainstalovali jste obslužný balíček a související objekty. Nyní vytvořte ve svém schématu objekt adresáře, jak je znázorněno v příkladu níže.
Vytvořte NEBO Nahradte adresář zip_files jako 'c:\zip_files';
  1. Potom vytvořte níže uvedenou funkci ve stejném schématu pro převod souboru na BLOB. Tato funkce bude použita k vytvoření souboru Zip pomocí balíčku zip_util_pkg PL/SQL. Všimněte si také že před vytvořením této funkce změňte ZIP_FILES název adresáře s vaším objektem adresáře databáze, který jste vytvořili výše.
VYTVOŘTE NEBO NAHRAĎTE FUNKCI file_to_blob (p_file_name VARCHAR2)RETURN BLOBASdest_loc BLOB :=EMPTY_BLOB ();src_loc BFILE :=BFILENAME ('ZIP_FILES ', p_file_name);BEGINDBMS_LOB.OPEN (src_loc, DBMS_LOB.LOB_READONLY);DBMS_LOB.CREATETEMPORARY (lob_loc => dest_loc,cache => TRUE,dur => DBMS_LOB.session);DBMS_LOB.LOB.OPEN,DLOBTEBDest. .LOADFROMFILE (dest_lob => dest_loc,src_lob => src_loc,amount => DBMS_LOB.getLength (src_loc));DBMS_LOB.CLOSE (dest_loc);DBMS_LOB.CLOSE (src_loc);RETURN dest_loc;/END file_to_blob; 

Test

Poznámka: V následujícím příkladu musí soubor emp.dat existovat v adresáři ZIP_FILES, který jsme vytvořili výše.

DECLAREl_file1 BLOB;l_zip BLOB;BEGIN/* emp.dat by měl být v umístění adresáře ZIP_FILES */l_file1 :=file_to_blob ('emp.dat ');zip_util_pkg.add_file (l_zip, 'emp.dat', l_file1);zip_util_pkg.finish_zip (l_zip);/* vytvoří soubor zip s názvem plsql_1.zip v adresáři ZIP_FILES */zip_util_pkg.save_zip (save_zip ZIP_FILES ', 'plsql_1.zip');END;/

Nyní můžete zkontrolovat umístění adresáře ZIP_FILES pro soubor plsql_1.zip.

Zkomprimovat více souborů

DECLAREl_file1 BLOB;l_file2 BLOB;l_zip BLOB;BEGINl_file1 :=file_to_blob ('emp.dat');l_file2 :=file_to_blob ('scott.sql');zip_util_pkg.add_file,'file1'emp.zip;zip_util_pkg.add_file (l_zip, 'scott.sql', l_file2);zip_util_pkg.finish_zip (l_zip);zip_util_pkg.save_zip (l_zip, 'ZIP_FILES ', 'plsql_3.zip');END;/

Viz také:

  • Rozbalte soubor v PL/SQL
  • Vytvořte soubor JSON v Oracle 11g pomocí PL/SQL
  • Export dat z Oracle SQL Developer do Excelu
  • Vytváření souborů PDF pomocí PL/SQL
  1. Android – SQLite – ZVOLTE MEZI datem1 A datem2

  2. Tabulka je „pouze pro čtení“

  3. SQL Server:Extrahujte metadata tabulky (popis, pole a jejich datové typy)

  4. MariaDB DATABASE() Vysvětleno