Colega, excusas desnecessárias aqui, se realmente vc "captou" a 
mensagem e corrigiu onde estava errando (pelo trecho de programa 
apresentado, parece que sim), ok, é o nosso objetivo, mostrar  o 
correto. No caso, em a sintaxe estando correta (como parece estar), 
novamente repito, só pode ser problema de autorização. Vou dar uma 
demonstração mais completa, para que vc reproduza no seu caso e ache 
o ponto.
 Primeiro de tudo, acho que outros colegas já falaram mas digo de 
novo, UTL_FILE serve ** apenas ** para arquivos locais NO SERVIDOR 
ORACLE, é lá que vc vai se conectar (via telnet, ou mesmo localmente 
no console) pras verificações, antes de começar a programar. No caso 
abaixo conectei via telnet :
 
cob:prd:/trafico/cob_adm>whoami
cob_adm
 
 o UTL_FILE roda sob a conta do dono do Oracle, vamos ver quem é ele :
 
cob:prd:/trafico/cob_adm>ps -ef | grep -i pmon
  oracle 17553     1  1  Mar 18  ?         1:49 ora_pmon_PRD
  
opa, o usuário correto se chama oracle, vou conectar com ele :

cob:prd:/transfer>su - oracle
Password:

ok, vamos ver que grupos de permissões ele participa :

sid=PRD:prd:/u1/app/oracle>groups
dba cob

digamos que eu quero ler/gravar arquivos em /transfer/fs_test/ , 
vamos ver as permissões NÂO apenas do diretório, mas do(s) sub(s) 
também :

cob:prd:/transfer>ls -ltd /transfer
drwxrwxr-x   4 cob        cob           8192 Mar 24 10:54 /transfer

cob:prd:/transfer>ls -ltd /transfer/fs_test
drwxrwxr-x   2 cob        cob             96 Mar 24 
10:54 /transfer/fs_test

=> vamos ver se o usuário oracle pode usar :

sid=PRD:prd:/u1/app/oracle>cd /transfer/fs_test
sid=PRD:prd:/transfer/fs_test>touch t.txt
sid=PRD:prd:/transfer/fs_test>ls -ltr
total 0
-rw-r--r--   1 oracle     dba              0 Mar 24 11:07 t.txt

ok, apesar de não pertencerem ao usuário que o utl_file vai utilizar 
(oracle), para o grupo cob as permissões estão rwx, como o oracle 
está nesse grupo vai poder ler/gravar na boa. Vou pro sql*plus e 
vamos programar :

[EMAIL PROTECTED]:SQL>create directory dir_saida as '/transfer/fs_test/';

Diretório criado.

==> veja que se eu não colocar as aspas na hora de criar, ele assume 
maiúsculas pro identificador :


[EMAIL PROTECTED]:SQL>select * from dba_directories;

OWNER            DIRECTORY_NAME
---------------- ------------------------------
DIRECTORY_PATH
--------------------------------------------------------------
SYS              UDUMP
/u1/app/oracle/admin/PRD/udump

SYS              DIR_SAIDA
/transfer/fs_test/

==> assim, se eu especificar minusculas, não vai encontrar :

[EMAIL PROTECTED]:SQL>get afiedt.buf
  1  DECLARE
  2     v_arq_ret UTL_FILE.file_type;
  3  BEGIN
  4     v_arq_ret:= utl_file.fopen('dir_saida','teste.csv','W',32767);
  5     For Reg_Linha in (select * FROM scott.dept) Loop
  6     UTL_File.put_line(v_arq_ret,Reg_Linha.DEPTNO);
  7     UTL_File.put_line(v_arq_ret ,Reg_Linha.DNAME);
  8  End Loop;
  9  UTL_File.Fclose(v_arq_ret);
 10  Dbms_Output.Put_Line('Arquivo gerado com sucesso.');
 11  EXCEPTION
 12     WHEN UTL_FILE.INVALID_OPERATION THEN
 13        Dbms_Output.Put_Line('Operagco invalida no arquivo.');
 14        UTL_File.Fclose(v_arq_ret);
 15     WHEN UTL_FILE.WRITE_ERROR THEN
 16        Dbms_Output.Put_Line('Erro de gravagco no arquivo.');
 17        UTL_File.Fclose(v_arq_ret);
 18     WHEN UTL_FILE.INVALID_PATH THEN
 19        Dbms_Output.Put_Line('Diretsrio invalido.');
 20        UTL_File.Fclose(v_arq_ret);
 21     WHEN UTL_FILE.INVALID_MODE THEN
 22        Dbms_Output.Put_Line('Modo de acesso invalido.');
 23        UTL_File.Fclose(v_arq_ret);
 24     WHEN Others THEN
 25        Dbms_Output.Put_Line('Problemas na geragco do arquivo.');
 26        UTL_File.Fclose(v_arq_ret);
 27* END;
[EMAIL PROTECTED]:SQL>/
Diretsrio invalido.

==> agora com o nome como armazenado :

[EMAIL PROTECTED]:SQL>ed
Gravou arquivo afiedt.buf

  1  DECLARE
  2     v_arq_ret UTL_FILE.file_type;
  3  BEGIN
  4     v_arq_ret:= utl_file.fopen('DIR_SAIDA','teste.csv','W',32767);
  5     For Reg_Linha in (select * FROM scott.dept) Loop
  6     UTL_File.put_line(v_arq_ret,Reg_Linha.DEPTNO);
  7     UTL_File.put_line(v_arq_ret ,Reg_Linha.DNAME);
  8  End Loop;
  9  UTL_File.Fclose(v_arq_ret);
 10  Dbms_Output.Put_Line('Arquivo gerado com sucesso.');
 11  EXCEPTION
 12     WHEN UTL_FILE.INVALID_OPERATION THEN
 13        Dbms_Output.Put_Line('Operagco invalida no arquivo.');
 14        UTL_File.Fclose(v_arq_ret);
 15     WHEN UTL_FILE.WRITE_ERROR THEN
 16        Dbms_Output.Put_Line('Erro de gravagco no arquivo.');
 17        UTL_File.Fclose(v_arq_ret);
 18     WHEN UTL_FILE.INVALID_PATH THEN
 19        Dbms_Output.Put_Line('Diretsrio invalido.');
 20        UTL_File.Fclose(v_arq_ret);
 21     WHEN UTL_FILE.INVALID_MODE THEN
 22        Dbms_Output.Put_Line('Modo de acesso invalido.');
 23        UTL_File.Fclose(v_arq_ret);
 24     WHEN Others THEN
 25        Dbms_Output.Put_Line('Problemas na geragco do arquivo.');
 26        UTL_File.Fclose(v_arq_ret);
 27* END;
[EMAIL PROTECTED]:SQL>/
Arquivo gerado com sucesso.

Procedimento PL/SQL concluído com sucesso.


==> vamos olhar no unix :

sid=PRD:prd:/transfer/fs_test>ls -ltr
total 16
-rw-r--r--   1 oracle     dba              0 Mar 24 11:07 t.txt
-rw-r--r--   1 oracle     dba             90 Mar 24 11:16 teste.csv

sid=PRD:prd:/transfer/fs_test>cat teste.csv
10
ACCOUNTING
20
RESEARCH
30
SALES
40
OPERATIONS
77
Depto 77
78
Ação
50
Pólen
43
Depto 43

==> vou mudar a permissão , pra que o usuário oracle só possa LER (e 
já que o W é de Write, só vai mesmo poder dar pau) :

cob:prd:/transfer>chmod o-rwx fs_test
cob:prd:/transfer>chmod g-rwx fs_test
cob:prd:/transfer>chmod g+r fs_test
cob:prd:/transfer>chmod o+r fs_test

cob:prd:/transfer>ls -ltd fs_test

drwxr--r--   2 fco        fco             96 Mar 24 11:16 fs_test

==> vou executar o programa lá na máq.cliente :

[EMAIL PROTECTED]:SQL>/
Operagco invalida no arquivo.

Procedimento PL/SQL concluído com sucesso.


==> confere??? 

[]s

 Chiappa
 


--- Em oracle_br@yahoogrupos.com.br, Luiz Claudio Felicio 
<[EMAIL PROTECTED]> escreveu
>
> Jlchippa!!! Valeu pela diga, mas meu camarda, desculpe pela minha 
existência, verifique por favor se o mesmo esta errado, pois estou 
tomando como   Operação invalida no arquivo. Segue o meu código:
>    
>   CREATE OR REPLACE PROCEDURE p_geracsv as 
> 
> 
> BEGIN
> 
> 
> DECLARE
> v_arq_ret UTL_FILE.file_type; 
> 
> Cursor Cur_Linha is
> select * FROM tmp_tar; 
> BEGIN
> v_arq_ret:= utl_file.fopen('dir_saida','teste.csv','W',32767);
> For Reg_Linha in Cur_linha Loop
> UTL_File.put_line(v_arq_ret,Reg_Linha.ID_ENTI_CLIE); 
> UTL_File.put_line(v_arq_ret ,Reg_Linha.CD_TAR);
> End Loop;
> UTL_File.Fclose(v_arq_ret);
> Dbms_Output.Put_Line('Arquivo gerado com sucesso.');
> EXCEPTION
> WHEN UTL_FILE.INVALID_OPERATION THEN
> Dbms_Output.Put_Line('Operagco invalida no arquivo.');
> UTL_File.Fclose(v_arq_ret);
> WHEN UTL_FILE.WRITE_ERROR THEN
> Dbms_Output.Put_Line('Erro de gravagco no arquivo.');
> UTL_File.Fclose(v_arq_ret);
> WHEN UTL_FILE.INVALID_PATH THEN
> Dbms_Output.Put_Line('Diretsrio invalido.');
> UTL_File.Fclose(v_arq_ret);
> WHEN UTL_FILE.INVALID_MODE THEN
> Dbms_Output.Put_Line('Modo de acesso invalido.');
> UTL_File.Fclose(v_arq_ret);
> WHEN Others THEN
> Dbms_Output.Put_Line('Problemas na geragco do arquivo.');
> UTL_File.Fclose(v_arq_ret);
> 
> 
> END;
> END p_geracsv;
>    
>    
>    
>    
>    
>    
>    
>    
>    
>    
>    
>    
>    
>    
>    
>    
>    
>    
>    
>    
>    
>    
>    
> 
> 
> jlchiappa <[EMAIL PROTECTED]> escreveu:  Eu já tinha dito em outra 
msg, repito : está errado não faz sentido o 
> que vc fez, se vc criou o diretório USE o diretório no open, E o 
> retorno do fopen TEM que ser pra uma variável, nunca pro diretório, 
> ok ?? Seria :
> 
> create directory dir_saida as '/ora01/oracle/tmp';
> 
> e depois :
> 
> DECLARE
> v_arq_ret UTL_FILE.file_type;
> ...
> BEGIN
> v_arq_ret := utl_file.fopen(dir_saida, 'teste.csv','W',32767);
> 
> certo ?? É JUSTAMENTE essa a finalidade do diretório.... E claro, 
> como já falado, lá no servidor o dir /ora01/oracle/tmp TEM QUE 
estar 
> com permissão de Read e Write pro usuário dono do Oracle.
> 
> []s
> 
> Chiappa
> --- Em oracle_br@yahoogrupos.com.br, Luiz Claudio Felicio 
> escreveu
> >
> > Galera preciso gerar um arquivo em txt.csv através do ult_file, 
mas 
> ainda não consegui, pois 
> > criei o diretorio no sqplus como o comando assim:
> > create directory arquivo_saida as '/ora01/oracle/tmp';
> > e coloquei no meu codigo o diretorio que criei..
> > arquivo_saida := utl_file.fopen
> ('/ora01/oracle/tmp','teste.csv','W',32767);
> > create directory arquivo_saida as '/ora01/oracle/tmp';
> > Por favor alguem pode me ajudar..Sistema operacional unix...
> > 
> > Agradeço,
> > Luiz 
> > 
> > 
> > 
> > 
> > ---------------------------------
> > Yahoo! Search
> > Dê uma espiadinha e saiba tudo sobre o Big Brother Brasil.
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> 
> 
> 
> 
> 
> 
> --------------------------------------------------------------------
------------------------------------------------------
> Atenção! As mensagens deste grupo são de acesso público e de 
inteira responsabilidade de seus remetentes.
> Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
> --------------------------------------------------------------------
------------------------------------------------------
__________________________________________________________________
> 
> Este Grupo recebe o apoio da SQL Magazine - 
www.devmedia.com.br/sqlmagazine 
> __________________________________________________________________
> O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, 
tenha o link do mesmo para evitar trafego(pedidos) desnecessário. 
> Links do Yahoo! Grupos
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
>               
> ---------------------------------
>  Yahoo! Messenger com voz - Instale agora e faça ligações de graça. 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>






--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__________________________________________________________________
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a