Question

Est-il possible de vérifier si le champ est numérique dans la colonne dérivée / fractionnement conditionnel de la tâche de flux de données dans SQL Server Integration Services 2005?

La fonctionnalité doit ressembler à la fonction ISNUMERIC ().

J'utilise actuellement

((DT_NUMERIC,12,0)fieldname= (DT_NUMERIC,12,0)fieldname)

dans l'expression de colonne dérivée pour vérifier si le nom du champ est Numeric. Mais si le nom du champ contient des caractères tels que 123ABC au lieu du chiffre 123, l'expression ci-dessus lève une exception en raison d'un échec de la conversion et de l'exécution du package stoppée.

Si nous avions une fonction comme ISNUMERIC (), alors nous n’avons pas besoin de faire tout ce cirque. Est-ce que quelqu'un sait s'il existe une fonction de ce type pour vérifier si le champ est numérique ou non dans SSIS.

Était-ce utile?

La solution

Nous utilisons la technique suivante:

  1. Sur la fiche de propriété du composant de colonne dérivée, vous pouvez cliquer sur le bouton "Configurer la sortie d'erreur" pour afficher la configuration de sortie d'erreur.

  2. Configurez les actions d'erreur et de troncature de cette colonne (ou de toute autre colonne) sur & "Ignore Failure &";

  3. .
  4. Maintenant, si la conversion de cette colonne échoue pour une ligne, le package continuera à être exécuté. La valeur de la colonne pour cette ligne sera définie sur null. Vous pouvez utiliser un composant ultérieur pour rechercher des valeurs NULL et prendre les mesures appropriées.

Autres conseils

Vous pouvez rediriger les lignes en erreur et gérer l'erreur. Ou utilisez une tâche de script.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top