Ошибка при открытии файла, находящегося на сервере, через utl_file.open! - PullRequest
0 голосов
/ 01 декабря 2010

Я пытаюсь открыть файл, находящийся на сервере базы данных, я использовал SELECT * FROM V $ PARAMETER WHERE NAME = 'utl_file_dir', чтобы узнать путь к каталогу.

Когда я выполняю этот код, яполучаю эту ошибку.ошибка "ORA-29283: недопустимая файловая операция"

declare
    v_file_handler utl_file.file_type;
    p_dir varchar2(100):='/d04/data/edi/inbound';
    v_no  number:=1;
    v_file varchar2(30):='ut_file.txt';
    begin
    if utl_file.is_open(v_file_handler) then 
    dbms_output.put_line('Already opened');
    else
    v_file_handler:= utl_file.fopen(p_dir,v_file,'r');
    utl_file.putf(v_file_handler,'program %s\n',sysdate);
    dbms_output.put_line('not opened');
    end if;
    exception
    when others then
    dbms_output.put_line(sqlerrm);
    end; 

Ответы [ 2 ]

1 голос
/ 02 декабря 2010
1 голос
/ 01 декабря 2010
v_file_handler:= utl_file.fopen(p_dir,v_file,'r');
utl_file.putf(v_file_handler,'program %s\n',sysdate);

Вы открываете файл для чтения и пытаетесь записать в него. Это должно бросить ошибка.

С Документация Oracle:

UTL_FILE.FOPEN (
   location     IN VARCHAR2,
   filename     IN VARCHAR2,
   open_mode    IN VARCHAR2,
   max_linesize IN BINARY_INTEGER) 

open_mode Specifies how the file is opened. 
Modes include:  r -- read text

Кроме того,

ORA-29283: недопустимая файловая операция

Причина : Предпринята попытка чтения из файла или каталога, который не существует, или доступ к файлу или каталогу был запрещен операционной системой.

Действие : Проверьте права доступа к файлам и каталогам в файловой системе, а при чтении убедитесь, что файл существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...