SSIS – Obtention d'une sous-string à partir d'un nom de file et insertion dans une table de database

J'ai plusieurs files dans un directory. La convention de nom de file est yob + year + .txt

Voici un exemple de nom de file: "yob1920.txt" .

La structure du (des) file (s) est comme suit: name,sex,number (remarquez qu'il n'y a pas de champ d'année car l'année fait partie du nom du file.

La structure de ma table de mise en scène est: tblNames (année, nom, sexe, nombre)

Mon exigence:

  • Obtenez la partie date de chaque nom de file (1920, 1921, etc.)
  • l'insert dans une table de mise en scène avec une colonne appelée Année

J'ai créé une connection de plusieurs files, un conteneur foreach et à l'intérieur de ce conteneur j'ai une tâche de stream de données qui itère à travers le directory et insère datatables.

Le problème est que je ne comprends pas complètement (même après avoir lu plusieurs sites) comment les variables fonctionnent par rapport au (x) conteneur (s) et à la tâche de stream de données qui fait réellement le travail.

Puis-je avoir des conseils sur l'obtention d'une sous-string à partir d'un nom de file et l'insertion dans une table de database qui a une colonne qui n'existe pas dans ledit file?

Tout d'abord, vous pouvez utiliser Foreach Loop Container (Foreach File Enumerator) pour boucler le directory dans lequel vous avez placé le file source. Ainsi, vous stockez le nom de file dans une variable avec des mappages de variables :

entrez la description de l'image ici

Créez ensuite une connection de file plat avec une expression de string de connection avec la valeur de la variable:

entrez la description de l'image ici

Vous pouvez ensuite utiliser "Colonne dérivée" pour append une nouvelle colonne avec la sous-string de la variable:

entrez la description de l'image ici