Pular para o conteúdo
  • Este tópico contém 5 respostas, 2 vozes e foi atualizado pela última vez 15 anos, 3 meses atrás por Avatar photoRegis Araujo.
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #96997
    mpvargas
    Participante

      Caros Amigos,
      Fiz uma importação de um arquivo txt para uma tabela do Oracle… encontrei problema em alguns registros (15 registros)… alterei alguns atributos da tabela e fiz a importação com esses erros para acerta-los depois.
      Na importação (sqlloader) ele me diz quais os registros estavam com problemas, erro de data, campo nulo, etc.

      O que eu preciso é localizar esses registros para fazer a alteração.
      Como faço para localizar um registro utilizando o ROWNUM?

      Obrigado pela ajuda

      #96999
      Avatar photoRegis Araujo
      Participante

        Ola Vargas, boa tarde!

        O Rownum não irá lhe auxiliar nesta situação, pois ele é uma pseudo-coluna em um resultado de comando SQL no Oracle que mostra o número das linhas retornadas…!!

        Ex..
        select rownum, coluna1, coluna 2, from tabela;

        rownum coluna1 coluna 2
        1 t t
        2 t t
        3 t t
        4 t t

        Independente de como vc faça o select, ele vai lhe trazer a numeração na ordem em que aparecer..

        E quando vc utuliza o ROWNUN <= XXX, vc esta trazendo apenas as linhas que aparecem no retorno do seu select até a linha de número XXX.

        Pelo que eu entendi, vc pode encontrar os registros fazendo um select na tabela e colocando um IN ou até mesmo um EXTERNAL TABLE para este arquivo de ERRO, ai vc pode comparar alguns campos tornando isto seu filtro de seleção..!!

        Bom.. espero que tenha lhe ajudado..

        Abraços..!

        #97002
        mpvargas
        Participante

          Regis, obrigado pela ajuda.
          O que eu tenho é o log do sqlloader informando o porque da linha ter sido rejeitada… por isso estou com dificuldade em como chegar até o registro.
          Por exemplo:
          Record 979: Rejected – Erro na coluna DT_NASC

          Nesse caso eu alterei a coluna DT_NASC para varchar2 ao invés de date
          Com isso eu consegui importar todos os registros sem restrição

          Como faço por exemplo para ler o registro 979. É possível?

          #97006
          Avatar photoRegis Araujo
          Participante

            Vargas..!

            O Sqlloader faz um OUTPUT tbm de todos os registros que não foram importados.. vc verificou este arquivo ?

            Caso não tenha feito.. é a opção BAD=””

            Da uma olhada no arquivo original.. procure a linha 979 no arquivo original, pois o Sqlloader importa sequencial..!!

            Qualquer coisa.. posta ai..!!

            Abraços..!

            #97008
            mpvargas
            Participante

              Certo Regis,
              Bem lembrado…
              Só que eu acabei cometendo um erro…
              Eu imprimi o arquivo de log e alterei a tabela, aí qdo fiz uma nova importação ele funcionou corretamente, deixando nesse arquivo .bad somente a linha que continha o total de registros…. hehehe
              Vou criar a tabela com outro nome, desfazer as alterações e recriar esse arquivo .bad

              Obrigado pela ajuda

              #97016
              Avatar photoRegis Araujo
              Participante

                Fala Vargas..!

                Bom.. creio que não precisa apagar tudo.. basta olhar o arquivo original e procurar pela linha q deu erro.. ai vc compara com as demais e ve a diferença..!!

                Abraços..!

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