Jump to content
leo.silvagomes

Importar arquivo CSV para SQL

Recommended Posts

Boa noite!

Tenho um programa que importa determinado arquivo CSV para um banco SQL afim de depois comparar os dados entre versões diferentes do mesmo arquivo, por exemplo uma versão do arquivo é do dia 01/09 e outra do dia 15/09, a finalidade do arquivo é comparar o que mudou

Uso uma procedure para importar os dados do arquivo para um objeto JvMemoryData e outra para alimentar uma ADOProc que faz o insert no SQL com os dados desse JvMD

 

Ocorre que o arquivo tem um padrão de 38 colunas e algo prox de 1 milhão de linhas! Como o cliente não usa toda a informação na planilha fiz uma opção de importação rápida que faz o input somente das colunas utilizadas, mas mesmo assim o processo de leitura e importação do arquivo demora até 50 min

 

Como posso deixar isso mais rápido? 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Luiz2020
      Pessoal,
       
      Preciso levar uma instância que está no SQL 2017 express e carregar no SQL 2014 express (servidores diferentes), gerando o backup pelo Management Studio (.bak) no sql 2017 express, ocorre erro de incompatibilidade de versão quando tento carregar no sql 2014 express.
       
      Com isso, no 2017 gerei a instânca full no script.sql (o arquivo .sql ficou enorme quase 1 GB),  ao carregar no sql 2014 express está ocorrendo erro de memória insuficiente.
       
      Encontrei uma forma de carregar o script.sql via comando: sqlcmd -S servidor -U login -P senha -i Script.sql  está carregando porém de forma muita lenta.
       
      Será que alguém pode ajudar?
       
      Desde já agradeço.
       
       
       
    • By Jafreal
      Bom dia a todos
       
      Tenho essa query abaixo que estou colocando em um "pedaço" do sistema RM, chamado CUBO.
      DECLARE @CODCOTACAO NVARCHAR(40) DECLARE @CODCOLIGADA INT SET @CODCOTACAO ='2020.000170' -- (numero de cotação) SET @CODCOLIGADA = '2' SELECT Y.IDPRD,MIN(Y.VALCOTACAO * Y.QUANTIDADEORC) as VALOR FROM TCITMORCAMENTO (NOLOCK) Y WHERE Y.CODCOLIGADA = @CODCOLIGADA AND Y.CODCOTACAO = @CODCOTACAO AND Y.VALCOTACAO > 0 GROUP BY Y.IDPRD Essa query poderá, em grande maioria de vezes, me trazer um grande número de linhas, pois estou trazendo de uma cotação os valores mais baixo por produto. Até ai tudo bem, mas me surge um problema, pois devo agora somar o conteúdo, campo VALOR, de todos os itens. Sei que a melhor maneira seria criar uma tabela temporária, mas dentro ERP RM, o mesmo não permite utilizar querys que criam tabelas temporárias e por isso que estou aqui. Gostaria de vocês alguma sugestão para esse dilema. Como somar  as linhas que surgiram dessa query?
    • By luca0202
      SQL state: 42000 SQL error code 8179
      Não foi possivel encontrar a instrução preparada como o identificador - 1
      estou utilizando o os componentes dbExpress ai quando eu testo no meu computador que e windows 10 roda de boinha ai quando vou testar no pc de outra pessoa que e windows 7 da esse erro quando vou abrir um um dbgrid
      o que pode ser esse erro ? alguem me ajude ?
      obs: estou utilizando o banco sql server
    • By juliosertori
      Olá tudo bem?
       
      Tenho uma tabela onde registro os produtos que vendeu, com o ID do Pedido, e preciso listar os mais vendidos por período.
       
      Tenho o SQL:
      SELECT SUM(quantidade) AS quantidade, id_produto, nome_produto FROM pedidos_produtos WHERE id_empresa = '".$_CPD['CompanyId']."' GROUP BY id_produto order by quantidade desc limit 0,10 Lista perfeitamente, mas o problema é que a DATA está na tabela PEDIDOS, como linkar?
       
      Obrigado!
    • By amauri.alves
      Bom dia,
      Estou em uma estação windows tentando me conectar a uma base SQL Server 2012 que está em um servidor Linux e estou tendo o seguinte problema.
      O Sistema tem duas instalações rodando em dois ambientes de servidores.
      Uma equipe utiliza o sistema com a base em um servidor Windows. Isto está funcionando sem problemas.
      Uma outra equipe vai precisar utilizar uma outra instalação do mesmo sistema porem esta terá que utilizar a mesma base instalada em um servidor Linux.
      O Sql Server manager está correto, conectou sem problemas e me responde todas as tabelas sem erros, lista todas as querys e executa todas as procedures views e triguers.
      A Conexão OBDC tambem respondeu sem erros e deu teste de conexção concluido com exito.

      No delphi eu utilizo Ado conection para me conectar à base, e ele responde também sem erros e testa a conexão retornando 
      teste de conexção concluido com exito.
      Até ai está tudo certo.
      O Problema é o seguinte.
      Quando eu ligo uma adotable ou uma ado query ele tambem conecta sem me retornar nenhum erro porem as tabelas não me trazem valor algum, elas respondem como se a base estivesse Vazia.
      Alguem sabe o que eu posso estar fazendo de errado?
      Obs. A Instalação está em dois Ambientes por que a demanda é desativar o servidor Windows e deixar somente a instalaçao Linux.

      **************************************************************
      Ambiente: Estação Windows 10
                Delphi 10.3 
                Sql Server 2012 Instalada em um Servidor Linux
                Conexão ODBC
      **************************************************************
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.