Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Считывание BFILE  [new]
relav
Member

Откуда:
Сообщений: 204
если файл на сервере имеет нулевой размер он считается процедурой ?

 dest_offset   INTEGER := 1;
 src_offset    INTEGER := 1;

 dbms_lob.loadblobfromfile(vfile, vfilename, dbms_lob.lobmaxsize, dest_offset, src_offset);
19 фев 15, 14:14    [17287475]     Ответить | Цитировать Сообщить модератору
 Re: Считывание BFILE  [new]
relav
Member

Откуда:
Сообщений: 204
уточню вопрос. При считывании файла с сервера выдавалась ошибка ORA-22994: source offset is beyond the end of the source LOB. Файл нулевой длинны. По этой причине выдается ошибка или нет? Код считывания привожу:
CREATE OR REPLACE PROCEDURE p_get_file(vfile_name VARCHAR2,
                                       vfile      OUT BLOB,
                                       vdir_name  VARCHAR2 DEFAULT 'STANCHION') IS
    vfilename     BFILE;
    dest_offset   INTEGER := 1;
    src_offset    INTEGER := 1;
    vdir_name_new VARCHAR2(50) := nvl(vdir_name, 'STANCHION');
    fsize INTEGER;
BEGIN
    SELECT bfilename(vdir_name_new, vfile_name) INTO vfilename FROM dual;
    if dbms_lob.fileexists( vfilename ) = 1 then
         fsize := dbms_lob.getlength(vfilename);
         dbms_lob.createtemporary(vfile, TRUE, 2);
         dbms_lob.fileopen(vfilename, dbms_lob.file_readonly);
         dbms_lob.loadblobfromfile(vfile, vfilename, dbms_lob.lobmaxsize, dest_offset, src_offset);
         dbms_lob.filecloseall();
    end if;
END;
19 фев 15, 14:46    [17287696]     Ответить | Цитировать Сообщить модератору
 Re: Считывание BFILE  [new]
123йй
Member

Откуда:
Сообщений: 1637
relav,
DBMS_LOB.GETLENGTH(src_clob)
19 фев 15, 14:56    [17287762]     Ответить | Цитировать Сообщить модератору
 Re: Считывание BFILE  [new]
relav
Member

Откуда:
Сообщений: 204
123йй,

т.е. обязательно проверять файл на нулевую длину потому что процедура
 dbms_lob.loadblobfromfile(vfile, vfilename, dbms_lob.lobmaxsize, dest_offset, src_offset);

его не считает?
19 фев 15, 15:07    [17287834]     Ответить | Цитировать Сообщить модератору
 Re: Считывание BFILE  [new]
123йй
Member

Откуда:
Сообщений: 1637
relav
123йй,

т.е. обязательно ...

не обязательно ... может вам больше нравится ORA-22994, а там уже гадать причину:)
19 фев 15, 15:11    [17287863]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить