Pular para o conteúdo
  • Este tópico contém 8 respostas, 3 vozes e foi atualizado pela última vez 13 anos, 9 meses atrás por armandoveloso.
Visualizando 9 posts - 1 até 9 (de 9 do total)
  • Autor
    Posts
  • #103763
    armandoveloso
    Participante

      Pessoal,

      Estou com dificuldades com o SQL Loader.

      Recebi um arquivo .csv enorme, com mais de 2 milhões de registros, e tem umas 70 colunas.

      As colunas são separadas por “;”.

      Não tenho a DDL de criação da tabela.

      Preciso importar pro oracle, mas somente interessa à empresa a importação de 4 colunas, e não sao as 4 primeiras do arquivo .csv, sao alternadas.

      O excell nao consegue abrir todas as linhas, mas ao carregou pequena parte e vi que a primeira linha é com o nome das colunas.

      Criei uma tabela com 4 colunas e usei isso no sql loader:

      LOAD DATA
      INFILE ‘tb_teste.csv’
      INSERT
      INTO TABLE TB_TESTE
      FIELDS TERMINATED BY ‘;’
      (COLUNA_D, COLUNA, I, COLUNA_M, COLUNA_Z)

      Ele importa todos os registros, mas pegando as quatro primeiras colunas: Coluna A, B, C e D. Nao consigo pegar as colunas D, I, M e z.

      Alguem pode me ajudar?

      Obrigado,
      Armando.

      #103766
      rman
      Participante

        @armandoveloso

        Você pode seguir outro caminho. Utilize EXTERNAL TABLE, depois é só fazer um CREATE AS SELECT com as colunas desejadas.

        #103768
        marlontk
        Participante

          Opa,
          Porque não criar uma tabela temporária com todos os campos importar e depois criar uma outra tabela e via select inserir os dados necessários?

          #103769
          armandoveloso
          Participante

            marlontk,

            É que não tenho nem noção do tipo e tamanho de cada uma dessas colunas, e como são bem 80, fica complicado de criar a tabela…

            rman,
            vou entao estudar essa sua dica, nao conheço.

            Obrigado a vcs pela ajuda!

            Armando.

            #103770
            armandoveloso
            Participante

              rman,

              Para usar EXTERNAL TABLE, pelo que entendi eu teria a mesma dificuldade, pois não tenho o formato dos campos e pra usar essa opção eu teria que saber a DDL da tabela tambem, ja que pela posição (position) não tem como usar, pois é um .csv

              Armando.

              #103771
              rman
              Participante

                @armandoveloso

                Então vamos tentar simplificar o problema, veja o que da pra fazer:

                1- Gere o CSV apenas com as colunas necessárias, ai você tem um leque de solução bem maior.

                2- Obtenha a DDL da tabela, provavelmente quem gerou o CSV tem essa informação.

                A solução não precisa ser 100% técnica, as vezes um telefonema já adianta todo trabalho.

                #103772
                armandoveloso
                Participante

                  rman,

                  Não tenho como gerar o csv, esse csv veio de um órgão do Estado, mas é como vc disse mesmo, ja pedi que a administracao daqui entre em contato com esse órgao pra tentarmos a DDL da tabela ou mesmo que eles gerem esse csv apenas com as 4 colunas que nos interessa.

                  []’s
                  Armando.

                  #103773
                  marlontk
                  Participante

                    Já tentou criar uma tabela com os campos como varchar2(1000) por exemplo que são campos que aceitam numero e texto, com uma extensão considerável apenas para testar a importação dos dados?

                    #103780
                    armandoveloso
                    Participante

                      marlontk e demais,

                      Pelas poucas linhas que consegui abrir, vi que os campos eram de tamanho pequeno, entao criei com tamanho 100.

                      Na metade do carregamento, com um pouco mais de 1 milhao de linhas importadas, da o seguinte erro:

                      SQL*Loader-605: Non-data dependent ORACLE error occurred — load discontinued.

                      Armando.

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