sticky
Gravar e deletar arquivos CSV no banco SQL RRS feed

  • Pergunta

  • Olá pessoal,

    Tenho uma dúvida para criação de um job no SQL 2012 e gostaria de um auxílio dos colegas.

    Então, tenho uma pasta local em um PC no qual contém arquivos CSV que são gerados por um outro sistema via script VBS com nomes únicos da seguinte forma ("id_aaaammdd_hhmmss"):

    "id_20190913_090000",

    "id_20190913_094512",

    "id_20190913_103205", ...

    Preciso criar um job agendado no SQL Server Agent (a cada minuto, por exemplo) que execute um pacote com um dataflow da seguinte forma: se existir arquivos CSV nessa pasta local quando ocorrer o evento (a cada minuto) que seja feita a gravação no banco SQL de cada um dos arquivos na ordem correta (arquivo mais antigo até o mais novo) e que somente após a gravação dos dados contidos nos arquivos CSV no banco (confirmado), o arquivo CSV seja deletado da pasta local do PC.

    A intenção é criar uma espécie de buffer (pasta local) entre o sistema que gera os arquivos CSV via script e o banco SQL para que, no caso de perda de comunicação ou lentidão, não afete a gravação no banco SQL. Atualmente o sistema grava diretamente no banco SQL via script (sem geração dos arquivos CSV), no entanto está gerando lentidão uma vez que a cada gravação tem que abrir a conexão com o banco e depois fechar, parando a execução do script de gravação.

    Eu já fiz um testes de um agendamento de job para executar a gravação no banco SQL de um único arquivo CSV e funcionou certo.

    O que gostaria de pedir ajuda dos colegas é de como fazer um para gravar vários arquivos CSV no banco e após a confirmação de gravação deletar o arquivo gravado.


    Agradeço qualquer ajude !

    Augusto

    sexta-feira, 13 de setembro de 2019 12:59

Respostas

  • Augusto B,

       Posso te mostrar algumas dicas de como fazer?

    =======================================
    Verificando se um arquivo ou diretório existe
    Como verificar se um arquivo ou diretório existe no SQL Server

    https://www.dirceuresende.com/blog/sql-server-como-listar-ler-escrever-copiar-excluir-e-mover-arquivos-com-o-clr-c/
    =======================================
    Lendo um arquivo e retornando como string
    Como ler um arquivo e retornar como uma string no SQL Server

    https://www.dirceuresende.com/blog/sql-server-como-listar-ler-escrever-copiar-excluir-e-mover-arquivos-com-o-clr-c/
    =======================================
    Apagando arquivos no SQL Server
    Como apagar arquivos no SQL Server

    https://www.dirceuresende.com/blog/sql-server-como-listar-ler-escrever-copiar-excluir-e-mover-arquivos-com-o-clr-c/
    =======================================
    Can I get SQL Server to call a stored proc every n seconds?

    https://stackoverflow.com/questions/4079363/can-i-get-sql-server-to-call-a-stored-proc-every-n-seconds
    =======================================

    []'s,
    Fabio I.
    sexta-feira, 13 de setembro de 2019 14:40