Re: Проблемы с BFILE в Oracle9
От: Sergey Ten http://www.fastalgo.com
Дата: 04.11.03 23:42
Оценка: 6 (1)
Здравствуйте, JMaxus, Вы писали:

JM>В Oracle9 пытаюсь работать с BFILE.

JM>Делаю таблицу с полем такого типа.

JM>create table my_table (bfile_field bfile).... ;


JM>Потом на сервере делаю


JM>create directory test2 as 'c:\oracle\test';

JM>insert into my_table (bfile_field) values (bfilename('test2','c:\1.txt'));
JM>commit;

JM>Все проходит, но в каталоге c:\oracle\test ничего нет, и соответственно при использовании поля bfile_field как LOB объекта возникают ошибки. В чем может быть проблема?


Проблема номер 0: В bfilename имя файла должно быть без пути, т.е. '1.txt', и он уже должен находиться в директории c:\oracle\test на сервере

Проблема номер 1: Когда что-то заключается в кавычки, оно станосится чувствительным к регистру, т.е. первым параметром bfilename будет 'TEST2'
insert into my_table (bfile_field) values (bfilename('TEST2','1.txt'));

После этого — селектом получаем lob locator и подсовываем его в соответствующие процедуры пакета dbms_lob:

declare
  lob_loc bfile;
begin
  select bfile_field into lob_loc from my_table;
  
  if dbms_lob.fileexists(lob_loc) = 1 then
    dbms_output.put_line('File exists');
  else
    dbms_output.put_line('File does not exist');  
  end if;
end;

File exists

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.