Задать вопрос

Как хранить exe файл в Oracle DB?

возникла необходимость хранить в базе данных по Оракл экзе-файлы. Как это можно сделать? И можно ли вообще? База данных хранит некие экзешники, которые необходимо впоследствии запускать.
  • Вопрос задан
  • 733 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
AxianLTD
@AxianLTD
Blob ключевое слово.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Rou1997
@Rou1997
Лучше все-таки файлы хранить в папке, а в БД таблица со столбцом с ID файла, хотя с BLOB должно быть структурно-проще.
Ответ написан
@leha2148 Автор вопроса
declare
    l_clob clob;
    l_bfile bfile;
    l_dest_offset number;
    l_src_offset number;
    l_lang_ctx number := 0; -- the default
    l_warning number;
begin
    l_bfile := bfilename('FILES_DIR', 'clob_col2.txt');

    dbms_lob.createtemporary(l_clob, true);
    l_dest_offset := 1; -- с начала
    l_src_offset := 1;  -- с начала
    
    dbms_lob.fileopen(l_bfile);
    dbms_lob.loadclobfromfile(
        dest_lob    => l_clob,
        src_bfile   => l_bfile,
        amount      => dbms_lob.lobmaxsize,
        dest_offset => l_dest_offset,
        src_offset  => l_src_offset,
        -- database csid by default or nls_charset_id('AL32UTF8')
        bfile_csid  => 0, 
        lang_context => l_lang_ctx,
        warning     => l_warning
    );
    dbms_lob.fileclose(l_bfile);
    
    dbms_output.put_line(
        'src_offset : ' || l_src_offset ||
        '; dest_offset : ' || l_dest_offset ||
        '; warning : ' || l_warning
    );
    
    dbms_lob.freetemporary(l_clob);
end;
/

src_offset : 1000010; dest_offset : 1000001; warning : 0

PL/SQL procedure successfully completed

полагаю, как-то таким образом происходит загрузка файла в clob
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы