Пакет UTL_FILE. Не создается файл.

Anton M.
Дата: 06.03.2007 17:16:14
Господа, подскажите плиз - в чем может быть проблема.

Есть пакадж и процедура:

create or replace
package log_writer as

  procedure put_line ( p_message varchar2 );

end log_writer;
/


create or replace
package body log_writer as

  procedure put_line ( p_message varchar2 ) is
    l_file utl_file.file_type;
    
    begin
    
        l_file := utl_file.fopen('c:\Temp',
                                 'output_file.txt',
                                 'a',
                                 32767 );
        utl_file.put_line (l_file, 
                            to_char(sysdate, 'DD-MON-YYYY HH24:MI:SS') || ' ' || p_message);                            
        utl_file.fclose( l_file );                                                             
        
        exception
            when others then
                null; 
  end put_line; 
  
end log_writer;
/

create or replace 
procedure do_log_writer (p_value varchar2 ) as

begin

    log_writer.put_line(p_value);    

end do_log_writer;
/

После ее выполнения, нет файла, который по идее она должна создавать. В чем тут загвоздка?
tru55
Дата: 06.03.2007 17:19:14
Блин, ну сколько можно говорить

НИКОГДА ТАК НЕ ДЕЛАЙ!!!
exception
  when others then
     null; 
Anton M.
Дата: 06.03.2007 17:19:15
Забыл уточнить - версия оракла 9.2.0.1
Anton M.
Дата: 06.03.2007 17:24:18
tru55
Блин, ну сколько можно говорить

НИКОГДА ТАК НЕ ДЕЛАЙ!!!
exception
  when others then
     null; 


Ага, точно на эксепшне вылетал...
Убераю эту обработку - вылетает сообщение:

[1]: (Error): Error executing statement: ORA-29280: недопустимый путь доступа к каталогу ORA-06512: на  "SYS.UTL_FILE", line 18 ORA-06512: íà  "SYS.UTL_FILE", line 424 ORA-06512: íà  "RDF_508_G7.LOG_WRITER", line 8 ORA-06512: íà  "RDF_508_G7.DO_LOG_WRITER", line 5 ORA-06512: íà  line 2
tru55
Дата: 06.03.2007 17:26:14
читать про объект DIRECTORY

PS в крайнем случае, про utl_file_dir, но это хуже
Anton M.
Дата: 06.03.2007 17:53:32
Ага, спасиб за наводку, но тут другая трабла:

Объявляю путь так:

create or replace DIRECTORY TEST_DIR as 'C:\Temp';

GRANT READ, WRITE ON DIRECTORY  TEST_DIR TO PUBLIC;

Далее на
log_writer
валится с сообщением:
[3]: (Warning) PLS-00201: идентификатор 'TEST_DIR' должен ыть объявлен 
Чего и где я его не объявил?
Anton M.
Дата: 06.03.2007 17:56:50
Вопрос решил, спасибо!