Pular para o conteúdo
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #86496
    Manoel872
    Participante

      Boa tarde a todos,

      E ae pessoal preciso de uma ajuda gostaria de saber se existe algum outro metodo de criação de arquivos que tenha um buffer maior, pois no caso do UTL_FILE.PUT_LINE vai ate 32k por registro, sem q eu tenha q escreve e diversas linhas…. pois estou com esse pipino o BD tem informações d+ em alguns registros esta trazendo mais de 32k por linha do arquivo txt, qndo tento carrega da erro.

      Att,

      Manoel.

      #86510
      Avatar photoLeonardo Litz
      Participante

        Manoel,

        Poste o seu código, vejamos como vc esta fazendo.

        Vlw Leonardo Litz

        #86514
        Manoel872
        Participante

          Litz:

          DECLARE
          STEXTO VARCHAR(32000);
          N NUMBER;
          ARQ UTL_FILE.FILE_TYPE;
          BEGIN
          ARQ := UTL_FILE.FOPEN(‘C:’,’MANOEL_TESTE’,’a’);
          FOR N in 1 .. 2000 LOOP
          STEXTO := STEXTO || ‘0123456789’;
          END LOOP;
          DBMS_OUTPUT.PUT_LINE(LENGTH(STEXTO));
          UTL_FILE.PUT_LINE(ARQ,STEXTO );
          END;

          Agora imagina o seguinte cenário no arquivo txt eu necessito que ele venha com os 40k de caracteres na mesma linha sem ter que quebrar para proxima linha…. entendeu? ficou melhor agora?

          Att,

          Manoel Jr.

          #86530
          Avatar photoLeonardo Litz
          Participante

            Olá Manoel

            Na função FOPEN, apartir do oracle 9i, existe um parametro chamado max_linesize, este determina o tamanho máximo da linha, caso não informado assume 32k.

            Por exemplo:
            UTL_FILE.FOPEN(‘C:’,’MANOEL_TESTE’,’a’,4000);

            Vlw Leonardo Litz

            #86535
            Manoel872
            Participante

              Litz:

              Já procurei bastante na internet, e ate agora nao achei nada pra solucionar meu problema…. se vc ver a procedure do UTL_FILE.PUT_LINE vc verá que o buffer e declarado como VARCHAR2 ou seja o problema não chega a ser o tamanho do registro da linha e sim a variavel de buffer do PUT_LINE pois seu limite e 32k, tentei criar uma rotina para fazer impressões sequencias na linha… usando so o PUT porém o limite e menor ainda 1.2k por linha e estou com a versão do oracle 8 então o jeito vai ser mudar o relatório.

              Att,

              Manoel jr.

              #86536
              Avatar photoLeonardo Litz
              Participante

                Manoel, o problema ai são os recursos disponíveis para versão 8i.

                Qual font end voce utiliza, tente trazer o processo para o front end.

              Visualizando 6 posts - 1 até 6 (de 6 do total)
              • Você deve fazer login para responder a este tópico.