Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alinerdl

Erro no UTL_FILE ou no exception?

Recommended Posts

Olá,Estou tentando rodar a seguinte query:declare v_arquivo1 utl_file.file_type;begin UTL_FILE.FCLOSE_ALL; v_arquivo1 := UTL_FILE.FOPEN('/interfaces/utl_file_dir', 'teste.txt', 'A'); UTL_FILE.put_line(v_arquivo1, 'Isso é um teste!'); UTL_FILE.FCLOSE(v_arquivo1); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('* EXCEPTION (0) *'); DBMS_OUTPUT.PUT_LINE('PROBLEMA NA ESCRITA DO ARQUIVO'); DBMS_OUTPUT.PUT_LINE('ERRO DESCRICAO.....: '||SQLERRM); DBMS_OUTPUT.PUT_LINE('ERRO NUMERO........: '||SQLCODE);end;Mas estou recebendo o seguinte erro:* EXCEPTION (0) *PROBLEMA NA ESCRITA DO ARQUIVOERRO DESCRICAO.....: User-Defined ExceptionERRO NUMERO........: 1O pacote UTL_FILE já está habilitado e o diretório está correto. Alguém poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A é append ... acho ... (nunca usei este parametro), o arquivo existe ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

troque

v_arquivo1 := UTL_FILE.FOPEN('/interfaces/utl_file_dir', 'teste.txt', 'A');

 

por

v_arquivo1 := UTL_FILE.FOPEN('/interfaces/utl_file_dir', 'teste.txt', 'W');

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tirando o Exception ocorre o seguinte erro:ORA-06510: PL/SQL: unhandled user-defined exceptionORA-06512: at "SYS.UTL_FILE", line 101ORA-06512: at "SYS.UTL_FILE", line 157ORA-06512: at line 6

Compartilhar este post


Link para o post
Compartilhar em outros sites

lembrei de uma coisa ...

 

acrescente este bloco

 

EXCEPTION

when utl_file.invalid_path then

raise_application_error(-20001,

'Local ou nome de Arq. Inválido..');

when utl_file.invalid_mode then

raise_application_error(-20002,

'Parametro open_mode Inválido.');

when utl_file.invalid_filehandle then

raise_application_error(-20002,

'File handle Inválido.');

when utl_file.invalid_operation then

raise_application_error(-20003,

'Permissão Negada ou Arq. Indisponível.');

when utl_file.read_error then

raise_application_error(-20004,

'Erro I/O durante Leitura.');

when utl_file.write_error then

raise_application_error(-20005,

'Erro I/O durante Gravação.');

when utl_file.internal_error then

raise_application_error(-20006,

'Erro Interno em PL/SQL.');

END;

 

deve retornar o erro de está dando

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você verificou se no arquivo de destino do seu UTL_FILE o usuário tem permissão para gravar no diretorio. E verifique também o diretorio padrão que está no banco de dados para enviar seus arquivos TXT. Abraços,

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.