web-dev-qa-db-fra.com

Sql Server SSIS package Modèle de fichier à plat Type de nom de fichier de destination (date, heure ou similaire)?

Je planifie un package SSIS pour l'exportation de données vers un fichier à plat.

Mais je veux générer des noms de fichiers avec certaines informations de date, telles que foo_20140606.csv

C'est possible?

Merci

8
ʞᴉɯ

Avec l'aide d'expressions, vous pouvez créer une connexion dynamique. 

Sélectionnez votre connexion de fichier à plat dans le volet Gestionnaires de connexion. Dans le volet Propriétés, cliquez sur Expression (...). Ensuite, choisissez Propriété ConnectionString dans la liste déroulante et, dans Expression (...), insérez votre expression et évaluez-la. 

Expression build - 

For day : (DT_STR,4,1252)DAY( DATEADD( "dd", -1, getdate() ))
For month: (DT_STR,4,1252)MONTH( DATEADD( "dd", -1, getdate() ))
For Year:  (DT_STR,4,1252)YEAR( DATEADD( "dd", -1, getdate() ))

Exemple d'expression (vous devez modifier selon vos besoins) - 

"E:\\Backup\\EmployeeCount_"+(DT_STR,4,1252)DATEPART( "yyyy" , getdate() ) + RIGHT("0" + (DT_STR,4,1252)DATEPART( "mm" , getdate() ), 2) + RIGHT("0" + (DT_STR,4,1252)DATEPART( "dd" , getdate() ), 2) +".txt" 

qui donne E:\Backup\EmployeeCount_20140627.txt comme valeur. 

Remarque: vous avez besoin d'une connexion de fichier à plat fonctionnelle. Créez tout d'abord une connexion de fichier à plat dont la propriété connectionString va ensuite être remplacée automatiquement par expression.

Vous pouvez également suivre ces articles étape par étape. 

ssis nommant dynamiquement la destination

Connexion de fichier plat dynamique SSIS

enter image description here

enter image description here

22
Vikramsinh Shinde

Sélectionnez votre connexion de fichier dans les gestionnaires de connexion, allez dans les propriétés et cliquez sur (...) à côté des expressions. 

Dans l'éditeur, sélectionnez ConnectionString dans la colonne Propriété. Dans la zone de texte Expression, vous pouvez entrer quelque chose comme "rootNameOfFile" + (DT_WSTR, 50) (DT_DBDATE) GETDATE () + ".csv"

Évaluez votre expression pour vous assurer d'obtenir ce que vous attendez, et le tour est joué!

1
Kritner

vous pouvez facilement donner le nom de fichier dynamique pour un fichier plat ou csv dans un package SSIS tel que DataFeed_ {yyyyMMdd} .txt, par exemple. DataFeed_20181212.txt. Accédez simplement à la propriété du gestionnaire de connexions de fichiers plats et définissez la valeur de l'expression. Vous pouvez également définir la variable au niveau du package. Cette variable, que vous pouvez utiliser dans l'expression et selon l'environnement, vous permet de définir l'emplacement du dossier à l'aide du fichier de configuration .dtsconfig.

plus de détails @ ssis nom de fichier dynamique pour fichier à plat

0
Rajeev Tiwari

Si vous n'avez pas SSDT et ne pouvez donc pas l'éditer avec une interface graphique, voici comment éditer directement le paquet SSIS:

Avant:

<DTS:ConnectionManager
      DTS:refId="Package.ConnectionManagers[DestinationConnectionFlatFile]"
      DTS:ObjectName="DestinationConnectionFlatFile"
      DTS:DTSID="{C69365C4-EF12-4606-980B-E8862EE997A4}"
      DTS:CreationName="FLATFILE">
      <DTS:ObjectData>

Après:

<DTS:ConnectionManager
      DTS:refId="Package.ConnectionManagers[DestinationConnectionFlatFile]"
      DTS:CreationName="FLATFILE"
      DTS:DTSID="{C69365C4-EF12-4606-980B-E8862EE997A4}"
      DTS:ObjectName="DestinationConnectionFlatFile">
      <DTS:PropertyExpression
        DTS:Name="ConnectionString">"C:\\Exportdir\\Filename_"
 + (DT_WSTR,4)DATEPART("yyyy",GetDate()) +
RIGHT("0" + (DT_WSTR,2)DATEPART("mm",GetDate()) ,2) +
RIGHT("0" + (DT_WSTR,2)DATEPART("dd",GetDate()),2) + "_" +
RIGHT("0" + (DT_WSTR,2)DATEPART("hh",GetDate()),2)+
RIGHT("0" + (DT_WSTR,2)DATEPART("mi",GetDate()),2) + ".csv"      
      </DTS:PropertyExpression>
        <DTS:ObjectData>
0
Kobbe