Pular para o conteúdo
Visualizando 9 posts - 1 até 9 (de 9 do total)
  • Autor
    Posts
  • #105036
    João Otávio
    Participante

      Bom dia,

      Foi me passado a missão (rs) de fazer algo que nunca fiz ainda, que é a importação automática de arquivos para o meu banco de dados.
      Eu consigo baixar da web um arquivo de extensão .CSV e gostaria de importar estes dados para dentro de uma tabela, porém esses dados são atualizados a todo momento e por isso, eu tenho que fazer a importação todos os dias, por volta das 7:00 da manhã. Ou seja, devo criar uma rotina diária para a importação destes dados para dentro de uma tabela.
      Pelo que eu vi em algumas buscas, parece ser possível de fazer, mas não encontrei um caminho exato para a realização de tal.

      obs: Abri o arquivo pelo Excel e notei que minhas colunas são delimitadas por ; (ponto e vírgula).

      Espero que alguém possa me ajudar.

      Grato,
      João Otávio.

      #105037
      rman
      Participante

        @Joao21

        Essa importação diária pode ser feita facilmente com o Sql Loader da própria Oracle, caso esteja em ambiente Linux, o agendamento pode ser feito pelo crontab.

        #105038
        João Otávio
        Participante

          Obrigado pela atenção @rman !

          Ouvi dizer mesmo deste SqlLoader e vou pesquisar pra ver qual funcionalidade ele pode me proporcionar.

          Até então eu tinha preferência de desenvolver uma Procedure para fazer esse load de .csv, porque será uma importação automática.. você sabe me informar como eu poderia fazer deste modo ?
          Eu abri o arquivo no Excel e ele divide as colunas por “;”.. imagino que teria de ser feito um “explode” (como em PHP) para transformar as “;” em colunas.

          Mais uma vez, muito obrigado.

          #105039
          Fábio Prado
          Participante

            @joao21,

            Nao tenha dúvidas em usar o SQL Loader. Ele será mais rápido e mais fácil de desenvolver do q vc criar um programa ou stored procedure para fazer o mesmo trabalho. Leia o artigo http://www.fabioprado.net/2010/10/cargas-de-dados-mais-rapidas-com-o-sql.htmlpara vc entender como ele funciona.

            []s

            Fábio Prado
            http://www.fabioprado.net

            #105040
            João Otávio
            Participante

              Obrigado Fábio !

              Por coincidência eu havia lido seu post em uma das minhas pesquisas rsrs.
              Vou utilizar mesmo o SQL Loader.

              Você tem um email para agente trocar informações ?

              Grande abraço a todos do GPO !

              #105041
              Fábio Prado
              Participante

                No meu blog vc tem todos os meus contatos, mas adianto que eu não respondo emails diretamente, pois dessa forma a gente não compartilha conhecimentos. Se tiver dúvidas deixe um comentário no artigo que eu respondo por lá, ok?

                []s

                #105046
                João Otávio
                Participante

                  Boa tarde,

                  Tentei utilizar SqlLoader, porem está me retornando um erro que eu nao consegui identificar:
                  [i]
                  SQL
                  Loader – 704: Internal error: ulconnect: OCIServerAttach [0]
                  ORA-12514: TNS: listener does not currently know of service requested in connect descriptor[/i]

                  Meu arquivo .CTL está assim:
                  [i]OPTIONS ( skip=1, rows=10000, errors=10 )
                  LOAD DATA
                  INFILE ‘aetc.csv’
                  BADFILE ‘LoadResults_BAD.log’
                  DISCARDFILE ‘LoadResults_DISCARDED.log’
                  APPEND
                  INTO TABLE TBLA51_FRETE_AEREO
                  Fields Terminated by “,”
                  Optionally Enclosed by ‘”‘
                  Trailing Nullcols
                  ( AETC_CODE,
                  PLANT_CODE,
                  SENDER_CODE,
                  SENDER_NAME,
                  SENDER_STREET1
                  )
                  [/i]

                  e aciono por um arquivo .BAT
                  [i]@echo off
                  echo.
                  sqlldr ‘mms / mms @ MMS’ control=’ControlFile.ctl’ log=’LoadResults.log’
                  pause[/i]

                  Alguém sabe me dizer o que pode estar ocorrendo ?

                  #105047
                  rman
                  Participante

                    @Joao21

                    Me parece que é algum erro de conexão, não é nada especifico do sql loader.

                    Faça um tnsping da seguinte forma:


                    tnsping MMS

                    Tente conectar também via sqlplus nesta instancia.

                    #105049
                    João Otávio
                    Participante

                      Boa tarde @rman e @fbifabio !

                      Consegui fazer o meu SQL Loader funcionar perfeitamente !
                      Alterei a linha para:
                      sqlldr ‘MMS/mms’ control=’ControlFile.ctl’ log=’LoadResults.log’

                      Muito obrigado a vocês dois, que estão sempre me ajudando. Espero que um dia eu possa lhes retribuir por toda ajuda que vocês tem me proporcionado. Ainda sou um iniciante do Oracle, e logo logo estarei fera, já estou correndo atrás disso.

                      Grande abraço,
                      João Otávio

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