Inquiridor
Variaveis GLOBAL SSIS para todos pacotes criados é possível ?

Pergunta
-
Oi Amigos, Preciso de uma ajuda.
Eu criei diversos pacotes simples(+ ou - 20) onde cada pacote faz uma conexão com o ORACLE, roda uma SQL simples no transformation e descarrega em uma tabela no banco SQL.
So que tenho um problema. Todos os SQL feitos no ORACLE atraves da ferramenta transformation possuem uma data como parametro.
como posso criar uma variavel global no SSIS, quando mudo a data modifica em todos os pacotes ? Ou seja, na ferramenta transformation onde está o código SQL do ORacle eu colocaria essa variavel global.
assim, setando essa variavel todos os pacotes assumiriam determinada data.
É possível ? como posso fazer ?Muito Obriado
Todas as Respostas
-
Bom Dia,
As variáveis globais tem escopo de pacote e não há como definir uma variável global para todos os pacotes. O que você pode fazer é colocar os valores desejados em um arquivo XML ou uma variável de ambiente e fazer com que seus pacotes leiam esses valores. Você pode até usar variáveis globais e ao executar o pacote fazer com que as variáveis globais leiam valores do arquivo xml ou das variáveis de ambiente.
Se for optar pela primeira alternativa, procure conhecer mais sobre Package Configuration (há um webcast ministrado pelo Roberto sobre esse assunto). Se for optar pela segunda alternativa, carregue os valores com a tarefa Script Task.
Esse tipo de solicitação foi feito durante o BETA do SSIS 2005. Não sei se o SSIS 2008 contemplou tal alteração. Havia algo semelhante a compartilhar conexões entre pacotes.
[ ]s,
Gustavo
-
-
-
Boa Tarde,
O Script Task seria apenas para recuperar um valor externo (Arquivo ou Variável de Ambiente) e colocar em uma variável global. É possível utilizar variáveis globais para o que você está querendo. Ao invés de selecionar uma tabela, você deve selecionar uma consulta e colocar a variável como parâmetro, ou se preferir, use a opção command from variable e a variável global deve conter todo o comando.
[ ]s,
Gustavo
-
Amigos,
É que na verdade conheço muito pouco da ferramenta. Chefe pediu tenho que me virar. rsrsrsrs Criei a variavel , mas quando coloquei a variavel no script do oracle atraves do transformation, disse que não existia aquela coluna no script oracle ??...
Vou apanhar um pouco aqui. Qualquer coisa eu grito..
-
A maneira mais fácil me parece essa mesmo, utilizar PackageConfiguration e salvar em uma tabela do SQL Server.
Ou ainda, você pode utilizar o PackageConfiguration e buscar o valor de um "parent package", isto é, um pacote pai, que executa um ou mais pacotes filhos.
Em se tratando de conexões com Oracle, é provável que os parâmetros não funcionem mesmo. Tente compor sua instrução SQL via Script Task, e salvá-la em uma variável do tipo string. No SQL Task (ou OLE DB Source), aponte para essa variável do tipo String.
-
Bom ,amigos, seguindo as dicas de vcs fiz o seguinte:
1 - Criei uma variavel no scopo do pacote.
2 - Setei essa variavel com um valor qualquer
3 - Criei outra variavel scopo pacote como string (Essa variavel tem minha declaracao SQL)
Mais ou menos assim:
var1 = 123
Na propriedade Expression da var2 eu coloquei " SELECT * FROM TABLE WHERE COD = @[User::var1]
so que quando valido a expressão através do botão Evaluate Expression, aparece tudo como texto, como fosse uma expressão só.
Exemplo: aparece assim: SELECT * FROM TABLE WHERE COD = @[User::var1]
não deveria aparecer assim: SELECT * FROM TABLE WHERE COD = 123
Pois quando eu valido somente a variavel ele traz 123.
Como posso unier uma variavel com uma expressao string ?
Pois se eu deixar como está, quando associo essa avriavel atraves do OLE DB data access mode SQL COMMAND FROM VARIABLE e executo fala que não foi declarada nenhuma variavel...
Acredito que o problema está na expressão quando mesclo a expressão sQL com a variavel...
Alguém, tem alguma dica ?
Obrigado !
-
-
Amigo, muito obrigadoooooooo...
Funcionou sim ! inclusive la no oracle. Agradeço a expertise dos ilustres amigos.
Bom, não vou fechar esse tópico ainda não. Pois essa rotina é complexa. Estarei pesquisando, mas se complicar peço ajuda aos mestres rsrsrsrsrrs
Abs