2016-09-12 7 views
1

Я создаю файл в каталоге, который я указываю. Я хочу, чтобы для каждого запуска было создано другое имя папки в каталоге с другим именем файла. И эта папка должна быть заархивирована.Как создать zip-папку в plsql (Oracle)

В настоящее время я использую:

create or replace 
PROCEDURE xx_WriteBLOBToFILE (myfilename IN VARCHAR2,L_PERSON_ID IN NUMBER) IS 

    v_blob   BLOB; 
    blob_length INTEGER; 
    out_file utl_file.file_type; 
    v_buffer  RAW(32767); 
    chunk_size  BINARY_INTEGER := 32767; 
    blob_position INTEGER := 1; 

BEGIN 

    -- Retrieve the BLOB for reading 
    Select Image Into V_Blob From Per_Images 
    Where Parent_Id =L_PERSON_ID; 

    -- Retrieve the SIZE of the BLOB 
    blob_length:=DBMS_LOB.GETLENGTH(v_blob); 

    -- Open a handle to the location where you are going to write the BLOB to file 
    -- NOTE: The 'wb' parameter means "write in byte mode" and is only availabe 
    --  in the UTL_FILE package with Oracle 10g or later 
    out_file := UTL_FILE.FOPEN ('INTF_DIR1', myfilename, 'wb', chunk_size); 

    -- Write the BLOB to file in chunks 
    WHILE blob_position <= blob_length LOOP 
    IF blob_position + chunk_size - 1 > blob_length THEN 
     chunk_size := blob_length - blob_position + 1; 
    END IF; 
    DBMS_LOB.READ(v_blob, chunk_size, blob_position, v_buffer); 
    UTL_FILE.PUT_RAW(out_file, v_buffer, TRUE); 
    blob_position := blob_position + chunk_size; 
    END LOOP; 

    -- Close the file handle 
    UTL_FILE.FCLOSE (out_file); 
END; 

Этот фрагмент кода перемещает блоб изображение в папку в директории. я хочу, чтобы это пятно изображения, которое будет генерироваться в отдельной папке, которая будет находиться под архивированной папкой

+1

ли вы имеете в виду * почтовый индекс * как в сжатом файле ОС, который можно считать внешним для базы данных, например 'gzip',' winzip' и т. д.? Или просто сжатый файл, который можно распаковать только в базе данных? – APC

+0

@APC - Я имею в виду zip в каталоге на сервере –

+0

Итак, это мой вариант 1, независимый от базы данных файл, который можно распаковать с помощью служебной программы ОС, например 'gzip'? Вы, скорее всего, получите полезный и своевременный ответ, если вы точно объясните *, что вам нужно. – APC

ответ

Смежные вопросы