Partager via


Cast (SSIS)

Convertit explicitement une expression d'un type de données vers un autre. L'opérateur de conversion peut également fonctionner comme opérateur de troncation.

Syntaxe


(type_spec) expression
        

Arguments

  • type_spec
    Type de données SSIS valide.

  • expression
    Expression valide.

Types des résultats

Le type de données type_spec. Pour plus d'informations, consultez Types de données d'Integration Services.

Notes

Le schéma suivant montre les opérations de conversion valides.

Conversions conformes et non conformes entre types de données

La conversion vers certains types de données nécessite des paramètres. Le tableau suivant décrit ces types de données et leurs paramètres.

Type de données

Paramètre

Exemple

DT_STR

charcount

codepage

L'expression (DT_STR,30,1252) convertit 30 octets, ou 30 caractères codés sur un octet, vers le type de données DT_STR à l'aide de la page de codes 1252.

DT_WSTR

Charcount

L'expression (DT_WSTR,20) convertit 20 paires d'octets, ou 20 caractères Unicode, vers le type de données DT_WSTR.

DT_BYTES

Bytecount

L'expression (DT_BYTES,50) convertit 50 octets vers le type de données DT_BYTES.

DT_DECIMAL

Scale

L'expression (DT_DECIMAL,2) convertit une valeur numérique dans le type de données DT_DECIMAL avec une échelle égale à 2.

DT_NUMERIC

Precision

Scale

L'expression (DT_NUMERIC,10,3) convertit une valeur numérique dans le type de données DT_NUMERIC avec une précision de 10 et une échelle de 3.

DT_TEXT

Codepage

L'expression (DT_TEXT,1252) convertit une valeur vers le type de données DT_TEXT à l'aide de la page de codes 1252.

Lorsque vous convertissez une chaîne vers un type de données DT_DATE ou vice versa, les paramètres régionaux de la transformation sont utilisés. Toutefois, la date se présente dans le format ISO AAAA-MM-JJJ, que les préférences des paramètres régionaux utilisent ou non le format ISO.

[!REMARQUE]

Pour convertir une chaîne en type de données date autre que DT_DATE, consultez Types de données d'Integration Services.

Si la page de codes est une page de codes de caractères multi-octets, le nombre d'octets et de caractères peut différer. La conversion d'un type de données DT_WSTR dans un type de données DT_STR avec la même valeur charcount peut provoquer la troncation des caractères finaux dans la chaîne convertie. Si l'espace de stockage disponible est suffisant dans la colonne de la table de destination, définissez la valeur du paramètre charcount de manière à ce qu'elle puisse contenir le nombre d'octets nécessaire à la page de codes multi-octets. Par exemple, si vous convertissez des données de type caractère dans un type de données DT_STR à l'aide de la page de codes 936, vous devez attribuer au paramètre charcount une valeur jusqu'à deux fois supérieure au nombre de caractères attendus dans les données ; si vous convertissez des données de type caractère à l'aide de la page de codes UTF-8, vous devez attribuer au paramètre charcount une valeur jusqu'à quatre fois supérieure.

Pour plus d'informations sur la structure des types de données date, consultez Types de données d'Integration Services).

Exemples

L'exemple suivant convertit une valeur numérique en un entier.

(DT_I4) 3.57

L'exemple suivant convertit un entier en une chaîne de caractères à l'aide de la page de codes 1252.

(DT_STR,1,1252)5

L'exemple suivant convertit une chaîne de trois caractères en caractères codés sur deux octets.

(DT_WSTR,3)"Cat"

L'exemple suivant convertit un entier en un nombre décimal avec une échelle de deux.

(DT_DECIMAl,2)500

L'exemple suivant convertit un entier en une valeur numérique avec une précision de sept et une échelle de trois.

(DT_NUMERIC,7,3)4000

L'exemple suivant convertit les valeurs de la colonne FirstName, définie avec un type de données nvarchar et une longueur de 50, en une chaîne de caractères à l'aide de la page de codes 1252.

(DT_STR,50,1252)FirstName

L'exemple suivant convertit le littéral de chaîne "True" en une valeur booléenne.

(DT_BOOL)"True"

Cet exemple convertit un littéral de chaîne en DT_DBDATE.

(DT_DBDATE) "1999-10-11"

Cet exemple convertit un littéral de chaîne en type de données DT_DBTIME2 qui utilise 5 chiffres pour les fractions de seconde. (Le type de données DT_DBTIME2 peut avoir entre 0 et 7 chiffres spécifiés pour les fractions de seconde.)

(DT_DBTIME2, 5) "16:34:52.12345"

Cet exemple convertit un littéral de chaîne en type de données DT_DBTIMESTAMP2 qui utilise 4 chiffres pour les fractions de seconde. (Le type de données DT_DBTIMESTAMP2 peut avoir entre 0 et 7 chiffres spécifiés pour les fractions de seconde.)

(DT_DBTIMESTAMP2, 4) "1999-10-11 16:34:52.1234"

Cet exemple convertit un littéral de chaîne en type de données DT_DBTIMESTAMPOFFSET qui utilise 7 chiffres pour les fractions de seconde. (Le type de données DT_DBTIMESTAMPOFFSET peut avoir entre 0 et 7 chiffres spécifiés pour les fractions de seconde.)

(DT_DBTIMESTAMPOFFSET, 7) "1999-10-11 16:34:52.1234567 + 5:35"