Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да архивирате файл в PL/SQL?

В тази публикация в блога давам пример за ZIP файл в PL/SQL. Използвам Alexandria PL/SQL Util Library за изпълнение на тази задача. Същата библиотека, която използвах за примера за експортиране на данни в Excel от таблицата на базата данни на Oracle. Следвайте тези стъпки, за да създадете ZIP файл с помощта на PL/SQL в Oracle.

Създайте ZIP файл в Oracle с помощта на PL/SQL

  1. Първо, изтеглете библиотеката на Alexandria PL/SQL от Github, като използвате следната връзка Изтегляне.
  2. След като изтеглите файла, извлечете го и намерете zip_util_pkg.pks и zip_util_pkg.pkb файлове в \alexandria-plsql-utils-master\ora\ директория и изпълнете тези скриптове във вашата Oracle Database Schema, за да я инсталирате.
  3. Ако са необходими поддържани обекти, намерете в папката \alexandria-plsql-utils-master\ и я инсталирайте.
  4. Инсталирали сте помощния пакет и свързаните с него обекти. Сега създайте обект на директория във вашата схема, както е показано в примера по-долу.
Създайте ИЛИ Заменете директория zip_files като 'c:\zip_files';
  1. След това създайте по-долу функция в същата схема, за да конвертирате файл в BLOB. Тази функция ще се използва за създаване на Zip файл с помощта на пакет PL/SQL zip_util_pkg. Отбележете също, че преди да създадете тази функция променете ZIP_FILES име на директория с обекта на директорията на вашата база данни, който сте създали по-горе.
СЪЗДАДЕТЕ ИЛИ ЗАМЕНЕТЕ FUNCTION file_to_blob (p_file_name VARCHAR2)ВЪРНЕТЕ 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); .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; файл__>Тест 

Забележка: В следващия пример файлът emp.dat трябва да съществува в директорията ZIP_FILES, която създадохме по-горе.

DECLAREl_file1 BLOB;l_zip BLOB;BEGIN/* emp.dat трябва да е в местоположение на директорията 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);/* ще създаде zip файла с име plsql_1.zip в директорията ZIP_FILES */zip_util_pkg. ZIP_FILES ', 'plsql_1.zip');END;/

Вече можете да проверите местоположението на директорията ZIP_FILES за файла plsql_1.zip.

Към архивиране на няколко файла

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,elf_dat_file'l.;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;/

Вижте също:

  • Разархивирайте файл в PL/SQL
  • Създайте JSON файл в Oracle 11g с помощта на PL/SQL
  • Експортиране на данни от Oracle SQL Developer в Excel
  • Създавайте PDF файлове с помощта на PL/SQL
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не позволявайте на потоците да ви заблуждават

  2. Как мога да извлека файлове от поле на Oracle BLOB?

  3. NLS_COLLATION_ID() Функция в Oracle

  4. ORA-27154 / ORA-27146

  5. Как да изпълните съхранена процедура на Oracle чрез връзка към база данни