Página 1 de 1

Gerar arquivo txt com linha no tamanho 5000

Enviado: Sex, 01 Jun 2012 10:52 am
por brunomruiz
Bom dia pessoal.
Estou com uma dúvida e dificuldade para solucionar este problema. Ocorre que necessito criar uma arquivo txt de exportação, cujo tamanho final de linha vai ser cerca de 5187 caracteres. Via spool da erro, uma query normal também da erro, tentei utilizar o UTL_FILE e não consegui também. Vou anexar uma declaração feita no pl/sql, se souberem ou puderam ajudar ficarei muito grato.
Abs

Selecionar tudo

DECLARE
  v_dir VARCHAR2(20) := 'CADASTROS';
  v_file UTL_FILE.FILE_TYPE;
  v_arq VARCHAR2(20) := 'TESTE.TXT';
  v_string VARCHAR2(6000);
BEGIN
  v_file := UTL_FILE.FOPEN_NCHAR(v_dir, v_arq, 'w');

  -- inicio linha 1
  v_string := LPAD('X', 2000, 'X');
  v_string := v_string||LPAD('Y', 2000, 'Y');
  UTL_FILE.PUT_LINE_NCHAR(v_file, v_string);
  UTL_FILE.FFLUSH(v_file);
  -- fim linha 1

  UTL_FILE.FCLOSE(v_file);
END;
Lembrando que tenho permissão para criar arquivos no diretório. Se diminuir o tamanho da certo...
O erro que apresenta é ORA-29285: file write error

Abs

Re: Gerar arquivo txt com linha no tamanho 5000

Enviado: Sex, 01 Jun 2012 11:38 am
por DanielNN
Qual mensagem do erro?

Re: Gerar arquivo txt com linha no tamanho 5000

Enviado: Sex, 01 Jun 2012 11:48 am
por brunomruiz
ORA-29285: file write error

Re: Gerar arquivo txt com linha no tamanho 5000

Enviado: Sex, 01 Jun 2012 2:55 pm
por madmax
Bruno.

Por padrão UTL_FILE.FOPEN abre o arquivo com tamanho de registro até 1024 caracteres (incluindo nova linha). O mais provável é o seu código exceder 1024.

Tente assim:

Selecionar tudo

f: = utl_file.fopen (dir, filename, 'w');
Mudar para algo como (assumindo que nenhum de seus registros excederá 10000)

Selecionar tudo

f: = utl_file.fopen (dir, filename, 'w', 10000);
Espero ter ajudado.

Re: Gerar arquivo txt com linha no tamanho 5000

Enviado: Sex, 01 Jun 2012 4:58 pm
por brunomruiz
Deu certo madmax.
Muito obrigado pela sua ajuda.
Abs