2009-08-06 7 views
1

Existe-t-il un moyen de vérifier la colonne Date (comme la fonction isDate dans TSQL) dans l'expression de colonne dérivée du package SSIS après l'extraction du fichier Source avant de le charger dans la cible dtabase?Fonction isdate dans le composant dérivé ssis

Merci

Répondre

2

Il n'y a pas construit en fonction, mais vous pouvez exécuter une tâche de script et utilisez le code vb.net pour vérifier si la colonne est une date et opérer comme vous le souhaitez ...

1

Il existe une tâche de conversion de données que vous pouvez laisser tomber. Ensuite, redirigez les lignes si nécessaire, soit en échouant complètement à l'importation, soit en redistribuant les lignes qui ne fonctionnent pas.

Ou vous pouvez essayer une scission conditionnelle wher eyou jeté le champ à un type de données de date, puis envoyer les échecs long d'un autre chemin (soit supprimer les enregistrements ou annulant le champ serait l'action commune.)

+0

Comment valider la date dans la tâche Dataconversion? – rmdussa

+0

Cliquez sur le bouton pour configurer la sortie d'erreur et sélectionner la ligne de redirection. Connectez ensuite la ligne d'échec à toutes les tâches que vous souhaitez effectuer si l'enregistrement ne peut pas être converti en une date. Généralement, je déplace les erreurs de ces types vers une table où je peux examiner les lignes et voir quel est le problème. De cette façon, je peux écrire du code pour résoudre les problèmes ou renvoyer les données à la source en leur demandant de réparer ou de décider d'annuler le fichier ou tout ce qui doit être fait. Je peux également échouer l'importation si je trouve quelques types (ou pourcentages) de mauvaises données. – HLGEM

+0

Première place à la façon de valider la date? Mon objectif principal est de trouver une valeur donnée, qu'elle soit valide ou non – rmdussa

1

J'ai rencontré un problème similaire. J'avais une date/heure dans un fichier texte, mais le champ avait un tiret entre la date et l'heure. J'ai créé une colonne dérivée pour faire remplacer sur le tableau de bord:

REPLACE([TimeField], "- ", "")

J'ai ensuite ajouté une colonne de conversion pour convertir le champ à une date. J'ai choisi d'ignorer les erreurs. J'ai ensuite ajouté une autre colonne dérivée pour vérifier si le champ converti était NULL, indiquant qu'il ne pouvait pas convertir la valeur. Si c'était le cas, je l'ai fait régler à la date actuelle.

0

Vous pouvez vérifier si votre variable a une date ou non à l'aide d'une instruction conditionnelle comme ceci:

testDateVariable?true:false 

Par exemple, si date > 2 il est true (et mettre la date, ou formater la date que vous souhait). Si c'est false, mettez null (vous remplacez true par le format de date et false par null).

Tout cela est dans une colonne pilotée dans SSIS.

+0

ce n'est pas la question, malheureusement. C'est comment vous tester si c'est une date, pas si la date a une valeur particulière. – Rich

Questions connexes