Ensemble de résultats SSIS du flux de données à la variable

avant que je me donne une sorte de crise cardiaque liée au stress.

est-ce que quelqu'un sait comment accomplir la tâche apparemment simple de définir l'ensemble de résultats d'une tâche de flux de données (le résultat sera soit un 0 ou un 1) et d'attribuer cette valeur à une variable.

j'ai créé la variable ok.

le jeu de résultats vient d'un fichier XML avec plusieurs éléments. Le drapeau (0 ou 1) est le résultat d'un de ces éléments, donc j'ai aussi besoin de savoir comment obtenir le résultat est juste ce drapeau.

Si quelqu'un pouvait aider, je voudrais vraiment l'apprécier.

mise à jour: j'ai finalement lu le résultat (0,1) de nouveau à SQL Server dans une table de drapeau. Ensuite utilisé un script SQL D'exécution pour le relire à partir du serveur SQL et à une variable. Vous ne savez pas si c'est la meilleure façon de l'avoir fait, mais il semble avoir fait le tour.

10
demandé sur Pixelated 2010-10-13 16:21:58

2 réponses

Vous pouvez utiliser un composant de script de flux de données pour transférer une valeur de colonne de flux de données à une variable SSIS. Cependant, vous devez suivre certaines règles lorsque vous travaillez avec le composant de script de flux de données et les variables SSIS.

SSIS ne vous permet pas d'assigner des valeurs aux variables SSIS dans la procédure de script qui traite les lignes. Mais il y a des procédures pré - et post-exécution où vous pouvez gérer la tâche.

dans votre composant Script, ajoutez la variable SSIS Propriété ReadWriteVariables. Éditez le script et déclarez une variable dans la classe ScriptMain. Utilisez la procédure Preexécute pour initialiser la variable. Utilisez la procédure ProcessInputRow pour assigner la valeur de la colonne input-buffer à la variable script. Et, utilisez la tâche Postexécute pour assigner la valeur de la variable script à la variable SSIS.

voici un exemple de composant de script VB. Il a une variable SSIS (MyOutVariable) qui obtiendra la sortie de la variable script (Mavar). La variable MyVar obtient sa valeur à partir de la colonne MyNumber dans le flux de données.

Public Class ScriptMain
    Inherits UserComponent

    Dim MyVar As Integer

    Public Overrides Sub PreExecute()
        MyBase.PreExecute()

        'initialize variable local to data flow
        MyVar = 0

    End Sub

    Public Overrides Sub PostExecute()
        MyBase.PostExecute()

        ' output variable value to SSIS variable
        Me.Variables.MyOutVariable = MyVar

    End Sub

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)

        ' logic to get value
        MyVar = Row.MyNumber

    End Sub
End Class
10
répondu bobs 2010-10-18 05:42:16

A partir de SSIS 2012, vous pouvez facilement attribuer une valeur à une variable en utilisant le Tâche D'Expression. Il n'y a pas besoin d'écrire un Script -- ce dont la plupart d'entre nous se méfient, pour accomplir une tâche apparemment simple de définir la valeur d'une variable.

Ex: si j'ai une variable date appelée Today et je veux lui affecter une valeur, je peux le faire facilement dans le tâche D'Expression comme le montre la dessous.

enter image description here

Autres Lectures:MSDN-SSIS Expression Task Documentation.

REMARQUE: (la réponse acceptée est périmée.)

1
répondu Shiva 2016-03-07 22:48:35