Motta 645 Denunciar post Postado Fevereiro 7, 2013 O Membro João Otávio 21 me pediu para postar este tutorial. ------------------------------------------------------------------------------------------------------------------------- SQL*Loader Deparei-me esses dias com a necessidade de importar arquivos de extensão .csv para meu banco de dados Oracle, e com um conselho do Motta cheguei a aplicação SQL*Loader do próprio Oracle. É bem simples de se fazer, vamos la ! Primeiramente eu criei uma pasta só pro SQL*Loader, pra ficar bem organizado e coloquei dentro da pasta o arquivo .CSV que eu queria importar. Depois eu criei uns arquivos lá dentro para os LOG’s: LoadResults.log LoadResults_BAD.log LoadResults_DISCARDED.log sqlnet.log SUPONHAMOS que o seu arquivo .CSV está no seguinte formato: CODIGO,"ESTADO","CIDADE","NOME" 1,"MG","Belo Horizonte","TESTE_BH" 2,"SP","São Paulo","TESTE_SP" 3,"RJ","Rio de Janeiro","TESTE_RJ" O próximo passo é criar um arquivo chamado ControlFile.ctl para o controle do Load dentro da pasta que agente criou lá no inicio. OPTIONS ( skip=1 , rows=10000, errors=10 ) LOAD DATA INFILE 'SEU_ARQUIVO.csv' BADFILE 'LoadResults_BAD.log' DISCARDFILE 'LoadResults_DISCARDED.log' APPEND INTO TABLE SUA_TABELA_DO_BD Fields Terminated by "," Optionally Enclosed by '"' Trailing Nullcols ( CODIGO, ESTADO, CIDADE, NOME ) Até ai beleza ! Para finalizar, vamos criar um arquivo para rodar o nosso load. Criem dentro da pasta um arquivo chamado GoLoad.bat com o seguinte código: @echo off echo. sqlldr 'SEU_USUARIO/SUA_SENHA@SEU_HOST_NAME' control='ControlFile.ctl' log='LoadResults.log' pause Pronto ! Agora é só clicar no arquivo .bat e fazer a importação do arquivo ! Só pra ficar mais claro, sua pasta tem que ter os arquivos: SEU_ARQUIVO.csv ControlFile.ctl LoadResults.log LoadResults_BAD.log LoadResults_DISCARDED.log sqlnet.log Espero que tenha ficado claro. Muito obrigado a todos do fórum, em especial ao Motta que está sempre ajudando a galera ! João Otávio Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Iamada 0 Denunciar post Postado Julho 7, 2016 O Membro João Otávio 21 me pediu para postar este tutorial. ------------------------------------------------------------------------------------------------------------------------- SQL*Loader Deparei-me esses dias com a necessidade de importar arquivos de extensão .csv para meu banco de dados Oracle, e com um conselho do Motta cheguei a aplicação SQL*Loader do próprio Oracle. É bem simples de se fazer, vamos la ! Primeiramente eu criei uma pasta só pro SQL*Loader, pra ficar bem organizado e coloquei dentro da pasta o arquivo .CSV que eu queria importar. Depois eu criei uns arquivos lá dentro para os LOG’s: LoadResults.log LoadResults_BAD.log LoadResults_DISCARDED.log sqlnet.log SUPONHAMOS que o seu arquivo .CSV está no seguinte formato: CODIGO,"ESTADO","CIDADE","NOME" 1,"MG","Belo Horizonte","TESTE_BH" 2,"SP","São Paulo","TESTE_SP" 3,"RJ","Rio de Janeiro","TESTE_RJ" O próximo passo é criar um arquivo chamado ControlFile.ctl para o controle do Load dentro da pasta que agente criou lá no inicio. OPTIONS ( skip=1 , rows=10000, errors=10 ) LOAD DATA INFILE 'SEU_ARQUIVO.csv' BADFILE 'LoadResults_BAD.log' DISCARDFILE 'LoadResults_DISCARDED.log' APPEND INTO TABLE SUA_TABELA_DO_BD Fields Terminated by "," Optionally Enclosed by '"' Trailing Nullcols ( CODIGO, ESTADO, CIDADE, NOME ) Até ai beleza ! Para finalizar, vamos criar um arquivo para rodar o nosso load. Criem dentro da pasta um arquivo chamado GoLoad.bat com o seguinte código: @echo off echo. sqlldr 'SEU_USUARIO/SUA_SENHA@SEU_HOST_NAME' control='ControlFile.ctl' log='LoadResults.log' pause Pronto ! Agora é só clicar no arquivo .bat e fazer a importação do arquivo ! Só pra ficar mais claro, sua pasta tem que ter os arquivos: SEU_ARQUIVO.csv ControlFile.ctl LoadResults.log LoadResults_BAD.log LoadResults_DISCARDED.log sqlnet.log Espero que tenha ficado claro. Muito obrigado a todos do fórum, em especial ao Motta que está sempre ajudando a galera ! João Otávio Joáo Otávio, o meu esta dando erro "sqlldr não é um comando interno ....." poderia me ajudar ? Compartilhar este post Link para o post Compartilhar em outros sites