none
SSIS dados não são escritos no DB RRS feed

  • Pergunta

  • Pessoal,

    Gostaria de saber se alguem já passou por isso:

    - tenho 2 bases, um pacote SSIS;

    - o processo lê x tabelas na base A e escreve em x tabelas na base B;

    - Mesmo server, o SQL e o SSIS, o pacote esta instalado no SSIS (MSDB) 2008 R2;

    -Executo o pacote no  Visual Studio 2k8 (fonte) e o pacote roda e escreve no banco B sem problemas;

    - Executo no SSIS publicado e  o pacote roda e escreve no banco B sem problemas;

    - Executo um job do SQL o pacote roda sem problemas (sem erros) escreve no banco B todas as tabelas menos a ultima;

    - Executo uma SProc para rodar o Job e o pacote roda sem problemas (sem erros) escreve no banco B todas as tabelas menos a ultima;

    Alguem poderia dar uma luz, já tentei de tudo até separei o processo da ultima tabela em outro pacote e o resultado é o mesmo, a tabela não é populada.

    Uso a mesma conta SQL para acessar os dois bancos. Não tenho problemas com permissionamento, nem execução do pacote mas quando rodo ele pelo SQL ele não atualiza a ultima tabela.

    Agradeço de ante mão a comunidade.


    Luciano Montenegro

    sexta-feira, 22 de junho de 2012 17:57

Respostas

  • Junior,

    achei o problema. Não se tratava de problema no SSIS nem de lógica, o fato e que a internacionalização, formato de data/hora e numero com separadores (, e .), estava causando esse problema.

    Explico:

    -Os dados no db stage são processados a partir de uma planilha excel.

    -Quem processa é a conta do agente do sql, e que tem uma configuração de internacionalização.

    - eu estava implementando com a minha conta , dev e claro, que por sua vez tem outra configuração de internacionalização.

    Ai e que esta o problema, quando eu executava o package no visual studio estava processando tudo com minha configuração de internacionalização, quer dizer o ponto decimal era ponto mesmo (formato americano)  e quando eu executava o package no sql server, pelo agente, qye tem outra internaionalização, o ponto era virgula, o processo importava os dados numericos com virgula para o banco.

    - nisso quando executava este pakage acima, no lookup de bitola ele compara o tamanho da bitola (ex: 2,32) com o padrão que estava na tabela auxiliar de bitolas, que era o valor (2.32) e tranferia todas as linhas importadas para inconssistência, claro, nenhum valor batia.

    SOLUÇÂO:

    no derived column, antes dos lookups eu fiz um replace no campo onde tinha "," troquei por "." e resolvi o problema.

    Junior Obrigado por participar.


    Luciano Montenegro

    sexta-feira, 6 de julho de 2012 13:55

Todas as Respostas

  • Luciano,

    Somente a última tabela não é gravada no banco?

    Quando você fala da table esta se referindo as linhas da table?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quarta-feira, 27 de junho de 2012 14:36
    Moderador
  • Junior,

    Exatamente, só queria esclarecer que a Package funciona corretamente no server SSIS e no visual studio (fonte), o problema acontece quando criamos um job e chamamos o package ssis do job sql, ele executa sem problemas não aparece menssagem de erro nenhum, nem na execução nem no history log, do job; mas no último data flow task, no último "ole db destination" ele não grava os registros(dados mesmo) tratados no banco de dados.

    Em uma parte de pipeline (no inicio) ele faz outras gravações no mesmo banco mas e outras tabelas com sucesso (mesmo package, e mesma conexão com banco) inclusive o processo é de banco sql para banco sql, mesmo server, o ssis tb esta  no mesmo server.

    Se tiver alguma luz, me avisa. Segue as imagens.


    Luciano Montenegro

    quinta-feira, 28 de junho de 2012 13:28
  • Junior,

    achei o problema. Não se tratava de problema no SSIS nem de lógica, o fato e que a internacionalização, formato de data/hora e numero com separadores (, e .), estava causando esse problema.

    Explico:

    -Os dados no db stage são processados a partir de uma planilha excel.

    -Quem processa é a conta do agente do sql, e que tem uma configuração de internacionalização.

    - eu estava implementando com a minha conta , dev e claro, que por sua vez tem outra configuração de internacionalização.

    Ai e que esta o problema, quando eu executava o package no visual studio estava processando tudo com minha configuração de internacionalização, quer dizer o ponto decimal era ponto mesmo (formato americano)  e quando eu executava o package no sql server, pelo agente, qye tem outra internaionalização, o ponto era virgula, o processo importava os dados numericos com virgula para o banco.

    - nisso quando executava este pakage acima, no lookup de bitola ele compara o tamanho da bitola (ex: 2,32) com o padrão que estava na tabela auxiliar de bitolas, que era o valor (2.32) e tranferia todas as linhas importadas para inconssistência, claro, nenhum valor batia.

    SOLUÇÂO:

    no derived column, antes dos lookups eu fiz um replace no campo onde tinha "," troquei por "." e resolvi o problema.

    Junior Obrigado por participar.


    Luciano Montenegro

    sexta-feira, 6 de julho de 2012 13:55