Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Motta

SQL*Loader por João Otávio 21

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.