2016-11-08 5 views
1

Возможно ли получить доступ к папке на моем компьютере из базы данных oracle? Другими словами базы данных не установлен на моей локальной машине, и я создал папку на моем компьютере «C: \ LOB», где я хочу сохранить изображения, полученные из базы данных, но возвращающегоОшибка Ora-29283 на 11g

ORA-29283 error: invalid file operation.

Я нахожусь убедитесь, что каталог создан, потому что я могу видеть его в папке каталогов в моей базе данных. Так что может быть проблемой? это потому, что папка создана на моем ПК, а база данных находится где-то в другом месте? Ниже моя процедура:

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; 
+0

Да после создания каталога я дал ему доступ как: grant read, write в каталоге my_DIR to my_user; –

ответ

3

PL/SQL работает в системе базы данных, то есть на сервере. Он может обращаться только к файлам на сервере. Это не файлы на вашем ПК.

Даже если вы определили каталог в Oracle (CREATE DIRECTORY ...) и предоставили пользователю достаточные права доступа, он не сработает, потому что Oracle попытается получить доступ к C:\LOB на сервере, а не на вашем ПК.

То, что вы пытаетесь достичь, не может быть разрешено на стороне сервера, то есть оно не может быть разрешено в PL/SQL. Вам придется писать код, который выполняется на стороне клиента (т. Е. На вашем ПК), например. некоторые Java или .NET-программы.

+0

Да Мне удалось сохранить данные из моей базы данных и сохранить их как изображения в C: \ LOB через .NET, Спасибо за вашу декларацию –