2017-08-16 1 views
0

Je suis nouvelle dans SSIS et je crée un package pour IDL (chargement de données incrémentiel) pour plusieurs tables.Comment définir la valeur d'une variable à partir d'une tâche de script pour une tâche de flux de données

Mon package a tâche d'exécution SQL et il travaille quand je mets la valeur de la variable de tâche de script Mais lorsque je tente de définir la valeur de la variable de tâche de script pour le flux de données (oldedb source) Il ne fonctionne pas par exemple

Mon package SSIS:

  • contenant ForEachLoop

  • tâche de script à boucle à travers le schéma pour la table et définir SourceTable = TableName.

  • source oledb (utilisation SourceTable)
  • recherche (Lookup correspond pas eteint)
  • Oldedb destination

Toute idée pourquoi ??

enter image description here

Mise à jour: enter image description here

+0

Avez-vous spécifié la variable en tant que lecture/écriture pour la tâche de script? – FLICKER

+0

Oui J'ai fait User :: SourceTable dans ReadWriteVariables – shaadi

Répondre

2

rapports SSIS telle erreur exotique de données de composants Source lorsqu'il est impossible d'extraire des informations de métadonnées (les noms de colonnes et les types de données) à partir de la source spécifiée. Voici les cas possibles et ToDos:

  • source de données est validée avant l'exécution de l'emballage, à ce moment aucune valeur à SourceTable variable existe. ToDo - spécifier DelayValidation = true pour tâche Dataflow, ou définir une valeur par défaut valide (pointant vers le tableau existant au moment du démarrage) pour la SourceTable variables
  • SourceVariable contient le nom de table non valide au moment de l'exécution. Cela se produit si vous avez apporté les modifications décrites ci-dessus et que l'erreur persiste. Utilisez le débogueur pour inspecter sa valeur et analyser le cas.
+0

J'ai utilisé le débogueur pour vérifier les valeurs de la tâche de script et la tâche de script passe la valeur à la tâche de flux de données mais je n'arrive toujours pas à écrire dans la variable de paquetage aussi j'ai défini DelayValidation = true. Voir, comme je peux seulement écrire à la valeur de la variable du paquet si j'utilise le composant de script. – shaadi

+0

Maintenant, je semble comprendre. Vous essayez d'écrire dans une variable de package dans un composant de transformation de script, n'est-ce pas? Dans ce cas, vous trouverez peut-être cela utile - https://stackoverflow.com/a/39206880 et https://stackoverflow.com/a/32229160. – Ferdipux

+0

Oui, vous l'avez. J'utilise le composant de script et la valeur de réglage de la variable dans la tâche de flux de données me semble manquer quelque chose car je ne peux pas utiliser la variable en mode dataaccess de la destination oledb, par exemple vérifier ma mise à jour en question. – shaadi