none
Bulk Insert + tabela temporaria RRS feed

  • Pergunta

  • Pessoal, boa noite.

    Preciso de uma ajuda de vocês.

    Estou utilizando o BULK INSERT para ler um arquivo CSV e inserir em uma tab temporária e posterior INSERT em tab física do BD.

    Só que antes de fazer o INSERT preciso fazer a consistência das informações gravadas na tab temporária. E aí está exatamente o meu problema. Como fazer essa consistência ? Como montar o looping ? No SELECT dessa tab temporária não tenho como utilizar a cláusula WHERE para passar uma condição de pesquisa!! Preciso consistir registro por registro, coluna por coluna da tab temporária interira (SELECT * from #Tab_Temp).

    Preciso fazer a consistência, por exemplo, se um campo da tab. temporária está nulo ou se é numérico... o resultado dessa consistência deve ser devolvido em uma variável de ERRO para que eu possa devolver esse erro para o Control-M fazer o devido tratamento, como por exemplo devolver a sysout com o código do erro e a mensagem.

    Peço a ajuda de vocês.

    Obrigado.

    Marcelo.

    terça-feira, 27 de setembro de 2011 01:25

Respostas

  • MBaptis,

     

    Por que voce não consegue filtrar pelo where?

    Um cursor não ajudaria? com ele voce podera verificar linha por linha e coluna por coluna, mas não espere boa performance....


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    • Sugerido como Resposta Eder Costa sexta-feira, 4 de novembro de 2011 16:00
    • Marcado como Resposta Eder Costa terça-feira, 8 de novembro de 2011 13:30
    terça-feira, 27 de setembro de 2011 12:21
    Moderador
  • Você pode usar uma CTE. Você conseguiria tratar a tabela em lote, com melhor performance que o cursor!
    • Sugerido como Resposta Eder Costa sexta-feira, 4 de novembro de 2011 16:00
    • Marcado como Resposta Eder Costa terça-feira, 8 de novembro de 2011 13:30
    terça-feira, 27 de setembro de 2011 14:34
  • Verificar também se não é o caso de utilizar Check Constraints na sua tabela temporária. Se você já souber previamente os dados aceitáveis para as colunas, talvez esta seja uma saída.
    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Sugerido como Resposta Eder Costa sexta-feira, 4 de novembro de 2011 16:00
    • Marcado como Resposta Eder Costa terça-feira, 8 de novembro de 2011 13:30
    terça-feira, 27 de setembro de 2011 20:49
    Moderador

Todas as Respostas

  • MBaptis,

     

    Por que voce não consegue filtrar pelo where?

    Um cursor não ajudaria? com ele voce podera verificar linha por linha e coluna por coluna, mas não espere boa performance....


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    • Sugerido como Resposta Eder Costa sexta-feira, 4 de novembro de 2011 16:00
    • Marcado como Resposta Eder Costa terça-feira, 8 de novembro de 2011 13:30
    terça-feira, 27 de setembro de 2011 12:21
    Moderador
  • Você pode usar uma CTE. Você conseguiria tratar a tabela em lote, com melhor performance que o cursor!
    • Sugerido como Resposta Eder Costa sexta-feira, 4 de novembro de 2011 16:00
    • Marcado como Resposta Eder Costa terça-feira, 8 de novembro de 2011 13:30
    terça-feira, 27 de setembro de 2011 14:34
  • Verificar também se não é o caso de utilizar Check Constraints na sua tabela temporária. Se você já souber previamente os dados aceitáveis para as colunas, talvez esta seja uma saída.
    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Sugerido como Resposta Eder Costa sexta-feira, 4 de novembro de 2011 16:00
    • Marcado como Resposta Eder Costa terça-feira, 8 de novembro de 2011 13:30
    terça-feira, 27 de setembro de 2011 20:49
    Moderador