- Este tópico contém 5 respostas, 2 vozes e foi atualizado pela última vez 15 anos, 3 meses atrás por
Regis Araujo.
-
AutorPosts
-
24 de novembro de 2010 às 6:24 pm #96997
mpvargas
ParticipanteCaros 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
24 de novembro de 2010 às 8:39 pm #96999Regis Araujo
ParticipanteOla 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 tIndependente 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..!
24 de novembro de 2010 às 9:06 pm #97002mpvargas
ParticipanteRegis, 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_NASCNesse caso eu alterei a coluna DT_NASC para varchar2 ao invés de date
Com isso eu consegui importar todos os registros sem restriçãoComo faço por exemplo para ler o registro 979. É possível?
24 de novembro de 2010 às 9:50 pm #97006Regis Araujo
ParticipanteVargas..!
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..!
24 de novembro de 2010 às 10:01 pm #97008mpvargas
ParticipanteCerto 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 .badObrigado pela ajuda
25 de novembro de 2010 às 4:46 pm #97016Regis Araujo
ParticipanteFala 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..!
-
AutorPosts
- Você deve fazer login para responder a este tópico.