Pular para o conteúdo
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #102085
    Anônimo

      Ola, criei uma extenal table em um banco de teste e tudo funcionou perfeitamente, consegui fazer select de todos os registos constantes em um arquivo csv armazenado no diretorio. Ao colocar em produção, qual foi a minha surpresa que ao tentar listar os regitros, retornava “no rows select”. Conferi, reconferi e nada.

      Entrei no arquivo e se digito novas linhas, em branco, então lista esta linhas, ignorando as que tem conteudo.

      Conteudo no arquivo (duas linhas em branco no final)
      01/12,231,9922.23131
      01/12/3231,31231.02932

      SQL> select * from OW_ORCAMENTO;

      DATA CONTA VALOR
      ———- ———- ———-

      SQL> select count(*) from OW_ORCAMENTO;

      COUNT(*)
      ———-
      2

      criacao da tabela:
      create table OW_ORCAMENTO
      (DATA varchar2(10),
      CONTA NUMBER(5),
      VALOR NUMBER(17,5))
      organization external
      (type oracle_loader
      default directory UTL_FILE_DIR
      access parameters
      ( records delimited by newline
      nobadfile
      nologfile
      nodiscardfile
      fields terminated by ‘,’
      missing field values are null
      )
      location (‘orcamento.csv’) )
      reject limit unlimited;

      Detalhe que poderá esclarecer: O meu banco teste é em ambiente windows e no de produção em tenho no Linux.
      Seria algo relativo a character mode ??

      #102086
      rman
      Participante

        @marcos

        Acho que a sua suspeita está correta, o delimitador que você está usando no external table é o newline, no windows o newline é representado por CR/LF e no linux apenas por LF. Use um editor de texto avançado para converter o arquivo, por exemplo, Ultraedit.

        #102188
        Anônimo

          Ola Rman, realmente o problema era este mesmo, mas consegui contornar o problema da seguinte maneira; Como gero a arquivo csv a partir de uma planilha, criei uma coluna a mais que necessita com alguma informação, e então funcionou.
          Tipo assim, necessitava DATA, CONTA, VALOR e então criei na planilha DATA, CONTA, VALOR, OUTRO e na extenal table, gerei apenas os tres primeiros campos.

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