Olá.
só vai gravar mesmo na pasta que está compartilhada no servidor do banco.
o Argumento que vc usou 'arquivo_saida', tem que ser uma variável ou o
nome do arquivo que vai ser gerado lá no servidor. exemplo 'arquivo.txt'



> Bom dia.
> 
> Tenho uma dúvida com relação a função
"UTL_File.Fopen": o arquivo de saida
> somente será
gravado em uma pasta configurada no servidor Oracle, ou posso
>
salvar em uma pasta local (em meu desktop p.ex.)? (estou utilizando o
> Oracle SQL
Developer - 3.2.20.09).
> 
> Quando
executo a rotina que criei (é a primeira vez que crio este tipo de
> rotina) somente é exibida a mensagem:
>
-------------------------
> Relatório de erro:
>
ORA-06550: linha 24, coluna 19:
> PLS-00306: número incorreto de
tipos de argumentos na chamada para 'FOPEN'
> ORA-06550: linha 24,
coluna 2:
> PL/SQL: Statement ignored
> 06550. 00000 - 
"line %s, column %s:\n%s"
> *Cause:    Usually a PL/SQL
compilation error.
> *Action:
>
-------------------------
> 
> Segue o script criado:
> -------------------------
> DECLARE
> 
arquivo_saida UTL_File.File_Type;
>  Dir_Arq VARCHAR2(60);
> 
>  Cursor Cur_Linha is
>    select
pc.filial||';'||
>           pc.numpedc||';'||
>          
pc.status||';'||
>           pc.fornecedor||';'||
>       
   fr.nome||';'||
>           pc.dt_emissao||';'||
>      
    pc.dt_pedido||';'||
>           pc.val_total_pedido||';'||
>           pc.cod_usuario as linha
>      from pedido_compra
pc, fornec fr
>     where fr.codigo = pc.fornecedor
>     
 and dt_emissao between to_date('01/01/2013','dd/mm/yyyy') and
>
to_date('08/08/2013','dd/mm/yyyy')
>       and cod_usuario =
'ELOAS'
>     order by dt_emissao;
> 
> BEGIN
>  Dir_Arq := 'C:\temp\';
> 
>  arquivo_saida :=
UTL_File.Fopen(Dir_Arq, arquivo_saida, 'W', 256);
> 
> 
For Reg_Linha in Cur_linha Loop
>   
UTL_File.Put_Line(arquivo_saida, Reg_linha.linha);
>  End Loop;
> 
>  UTL_File.Fclose(arquivo_saida);
> 
> 
Dbms_Output.Put_Line('Arquivo gerado com sucesso.');
> 
>
EXCEPTION
>  WHEN UTL_FILE.INVALID_OPERATION THEN
>   
Dbms_Output.Put_Line('Operação inválida no arquivo.');
>   
UTL_File.Fclose(arquivo_saida);
>  WHEN UTL_FILE.WRITE_ERROR
THEN
>    Dbms_Output.Put_Line('Erro de gravação no arquivo.');
>    UTL_File.Fclose(arquivo_saida);
>  WHEN
UTL_FILE.INVALID_PATH THEN
>    Dbms_Output.Put_Line('Diretório
inválido.');
>    UTL_File.Fclose(arquivo_saida);
>  WHEN
UTL_FILE.INVALID_MODE THEN
>    Dbms_Output.Put_Line('Modo de
acesso inválido.');
>    UTL_File.Fclose(arquivo_saida);
>
 WHEN Others THEN
>    Dbms_Output.Put_Line('Problemas na geração
do arquivo.');
>    UTL_File.Fclose(arquivo_saida);
>
END;
> -------------------------
> 
>
Desde
já agradeço a colaboração.
> 
> 
> Att,
>

> --
> Otavio S Wollny
> 
> 
>
[As partes desta mensagem que não continham texto foram removidas]
> 
> 



[As partes desta mensagem que não continham texto foram removidas]

Responder a