H.AL Ответов: 1

Ora-29283 ошибка на 11g


Можно ли получить доступ к папке на моем компьютере из базы данных oracle? Другими словами база данных не установлена на моем локальном компьютере и я создал папку на своем компьютере 'C:\LOB" где я хочу сохранить изображения, полученные из базы данных, но он возвращает ошибку ora-29283: недопустимая файловая операция. Я уверен, что каталог создан, потому что я могу видеть его в папке каталогов в моей базе данных. Так в чем же может быть проблема? это потому, что папка создана на моем компьютере, а база данных находится где-то в другом месте? Ниже приведена моя процедура:

CREATE OR REPLACE PROCEDURE BLOB_UPDATE (file_name in varchar) IS

    file_ref UTL_FILE.file_type;
    raw_max_size constant number := 32767;

 begin

   file_ref := UTL_FILE.fopen('MY_DIR', file_name, 'WB', raw_max_size);
   -- Here it stops working ! -- 
   ....
   utl_file.fclose(file_ref);

END BLOB_UPDATE;


Что я уже пробовал:

Я попытался создать другой каталог, но у меня все еще есть та же проблема

Richard MacCutchan

Где находится каталог MY_DIR, и что содержится в file_name?

1 Ответов

Рейтинг:
4

Kornfeld Eliyahu Peter

База данных работает на своем сервере, который не является вашим компьютером (за исключением очень редких случаев).
Это означает, что когда вы пишете в своем SQL-операторе любую часть (c:\my_dir\my_file.txt) он относится к серверу, а не к вашему компьютеру...
Вы можете использовать UNC (\\my_computer\c_share\my_dir\my_file.txt), но теперь это открывает совершенно новую проблему безопасности...
Таким образом, в принципе, даже если это возможно, очень плохая идея напрямую сохранять дату из таблиц в файлы с помощью SQL...
Сделать это:
1. Возвращение большого двоичного объекта, как и любые другие данные в приложение
2. Сохранение Blob-данных, используя стандарт - на стороне клиента - техники...