none
Utilizando Variavel no Execute SQL Task RRS feed

  • Pergunta

  •  

    Bom Dia Galera,

     

    estou com um problema, se possível vocês me ajuderem, e dizerem se é realmente possível ou não.

     

    Estou executando um SQL, com algumas variaveis,  passo valores em algumas variaveis Declaradas no proprio SQL, pois usaria o mesmos filtros várias vezes.

     

    Porém minhas Datas: Iniciais e Finais, gostaria de passar apartir de variaveis do proprio SSIS.

     

    Estou executando o SQL em um Execute SQL Task e gostaria de saber se é possível de passar parametros na sintaxe SET do sql..

     


    Exemplo:

     

    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED


    DECLARE @dDataInicial DATETIME

    DECLARE @dDataFinal DATETIME

     

     

    SET @dDataInicial = ?

    SET @dDataFinal = ?

     

     

    Onde os " ? " seria o paramentro que receberia minha variavel do SSIS.

     

    Porém tendei de diversas maneiras e não consigo, cada hora um erro diferente, algumas vezes diz, que o DBTIME, ou DBTIMESTAMP, ( Formatos das Datas que eu atribui para variavel não estão corretos) ou diz que está com erro no Result.

     

    Enfim, apenas consegui passar a variavel no meu WHERE, porém como vou utilizar a mesma variavel varias vezes, preciaria utilizar no SET, para que eu possa utilizar o mesmo valor nas outras partes do select.

     

    Enfim, a pergunta: È Possível?, ou Existe outra Maneira?

     

     

    Aguardo Ajuda de Vocês.

     

     

    Att.

    M.R.C.

    quinta-feira, 7 de agosto de 2008 12:46

Respostas

  • MRC,

     

    Boa pergunta.

     

    Utilizando no where você esta conseguindo isso já representa algumas possiblidades de utilização.

     

    Agora na diretiva SET você não esta conseguindo por questões de compatibilidade dos dados!!!

     

    Já tentou fazer algum tipo de conversão destes valores!!!

     

    quinta-feira, 7 de agosto de 2008 13:11
  •  

    Ae galera, Consegui...

     

    Baseado no que o Junior disse sobre a incompatibilidade dos dados, eu comecei a mecher em todos os tipos de valores que existiam datas, e Consegui!!

     

     

    Quando eu crio a variavel, no SSIS no pacote, eu crio ela como Datetime, no meu SQL também utilizei como Datetime, Meu erro estava no Parameter Mapping do Execute SQL Task, onde no Data Type, eu estava colocando DBTIME, e o Correto é DATE

     

    Trocando isso, funcionou corretamente!!

     

    Valeu a força ai Junior!

     

     

    Abraços!

     

     

    Att.

    M.R.C

     

    quinta-feira, 7 de agosto de 2008 14:20

Todas as Respostas

  • MRC,

     

    Boa pergunta.

     

    Utilizando no where você esta conseguindo isso já representa algumas possiblidades de utilização.

     

    Agora na diretiva SET você não esta conseguindo por questões de compatibilidade dos dados!!!

     

    Já tentou fazer algum tipo de conversão destes valores!!!

     

    quinta-feira, 7 de agosto de 2008 13:11
  •  

    Fala Junior, Blz?

     

    Então, não estou utilizando conversão, pois no SQL já declaro minha váriavel como Datetime, e a váriavel que crio no SSIS tb é Datetime, justamente para não dar problema.

     

    Você acha que ainda assim deveria utilizar conversão?.. no Caso Onde?

     

     

    Att.

    M.R.C

     

    quinta-feira, 7 de agosto de 2008 13:21
  • MRC,

     

    Se você esta utilizando datatype iguais e os dados estão sendo passados no mesmo formato deveria funcionar!!!

     

    Mas em último caso vamos fazer uma conversão dos dados que será passados para o SSIS, ou seja, o valor que o SQL Server vai enviar para o pacote você poderia fazer a conversão.

    quinta-feira, 7 de agosto de 2008 13:53
  •  

    Ae galera, Consegui...

     

    Baseado no que o Junior disse sobre a incompatibilidade dos dados, eu comecei a mecher em todos os tipos de valores que existiam datas, e Consegui!!

     

     

    Quando eu crio a variavel, no SSIS no pacote, eu crio ela como Datetime, no meu SQL também utilizei como Datetime, Meu erro estava no Parameter Mapping do Execute SQL Task, onde no Data Type, eu estava colocando DBTIME, e o Correto é DATE

     

    Trocando isso, funcionou corretamente!!

     

    Valeu a força ai Junior!

     

     

    Abraços!

     

     

    Att.

    M.R.C

     

    quinta-feira, 7 de agosto de 2008 14:20
  • MRC,

     

    Opa, que bom, obrigado pelo retorno.

     

    Não sou especialista no SSIS, mas estou sempre dando uma fuçada!!!

    quinta-feira, 7 de agosto de 2008 16:42