Types de données d'Integration Services

Mis à jour : 15 septembre 2007

Lorsque des données entrent dans un flux de données dans un package, la source qui extrait les données les convertit en type Integration Services. Les données numériques se voient attribuer le type de données numeric, les données chaînes le type de données character et les dates le type de données date. Le type de données Integration Services approprié est également affecté aux autres données, comme les GUID et les BLOB (Binary Large Object Blocks). Si le type des données ne peut pas être converti en un type de données Integration Services, une erreur se produit.

Certains composants de flux de données convertissent les types de données entre les types de données Integration Services et les types de données managées du Microsoft .NET Framework. Pour plus d'informations sur le mappage entre Integration Services et les types de données managées, consultez Mapping Data Types in the Data Flow.

Le tableau suivant énumère les types de données Integration Services.

Type de données Description

DT_BOOL

Valeur booléenne.

DT_BYTES

Valeur de données binaires. La longueur est variable et ne peut pas dépasser 8 000 octets.

DT_CY

Valeur de devise. Ce type de données est un entier signé de 8 octets avec une échelle de 4 et une précision maximale de 19.

DT_DATE

Structure de date comprenant l'année, le mois, le jour et l'heure.

Le type de données DT_DATE est implémenté à l'aide d'un nombre à virgule flottante à 8 octets. Les jours sont représentés par des incréments de nombres entiers, commençant le 30 décembre 1899, minuit correspondant à l'heure zéro. Les valeurs d'heure sont exprimées sous la forme de la valeur absolue de la partie fractionnaire du nombre. Cependant, une valeur à virgule flottante ne peut pas représenter toutes les valeurs réelles ; des restrictions sont par conséquent imposées quant à la plage des dates pouvant être représentées dans DT_DATE.

D'autre part, DT_DBTIMESTAMP est représenté par une structure comportant des champs individuels pour l'année, le mois, le jour, les heures, les minutes, les secondes et les millisecondes. Ce type de données n'impose aucune restriction quant aux plages de dates qu'il peut représenter.

DT_DBDATE

Structure de date comprenant l'année, le mois et le jour.

DT_DBTIME

Structure d'heure comprenant les heures, les minutes et les secondes.

DT_DBTIMESTAMP

Structure d'horodateur comprenant l'année, le mois, le jour, les heures, les minutes, les secondes et les millisecondes.

DT_DECIMAL

Valeur numérique exacte avec une précision et une échelle fixes. Ce type de données est un entier non signé de 12 octets avec un signe séparé, une échelle comprise entre 0 et 28 et une précision maximale de 29.

DT_FILETIME

Valeur de 64 bits représentant le nombre d'intervalles de 100 nanosecondes depuis le 1er janvier 1601.

DT_GUID

Identificateur global unique (GUID).

DT_I1

Entier signé de 1 octet.

DT_I2

Entier signé de 2 octets.

DT_I4

Entier signé de 4 octets.

DT_I8

Entier signé de 8 octets.

DT_NUMERIC

Valeur numérique exacte avec une précision et une échelle fixes. Ce type de données est un entier non signé de 16 octets avec un signe séparé, une échelle comprise entre 0 et 38 et une précision maximale de 38.

DT_R4

Valeur en virgule flottante simple précision.

DT_R8

Valeur en virgule flottante double précision.

DT_STR

Chaîne de caractères ANSI/MBCS se terminant par une valeur null avec une longueur maximale de 8 000 caractères. (Si une valeur de colonne contient des indicateurs de fin NULL, la chaîne apparaît tronquée dès la première valeur NULL.)

DT_UI1

Entier non signé de 1 octet.

DT_UI2

Entier non signé de 2 octets.

DT_UI4

Entier non signé de 4 octets.

DT_UI8

Entier non signé de 8 octets.

DT_WSTR

Chaîne de caractères Unicode se terminant par une valeur null avec une longueur maximale de 4 000 caractères. (Si une valeur de colonne contient des indicateurs de fin NULL, la chaîne apparaît tronquée dès la première valeur NULL.)

DT_IMAGE

Valeur binaire avec une taille maximale de 231-1 (2 147 483 647) octets. .

DT_NTEXT

Chaîne de caractères Unicode avec une longueur maximale de 230 - 1 (1 073 741 823) caractères.

DT_TEXT

Chaîne de caractères ANSI/MBCS avec une longueur maximale de 231 -1 (2 147 483 647) caractères.

Modification du type de données des colonnes

Si les données d'une colonne n'ont pas besoin de toute la largeur qui leur est allouée par le type de données source, vous voudrez peut-être changer le type de données de la colonne. La réduction de la longueur de chaque ligne de données permet d'optimiser les performances lors du transfert de données car plus la ligne est courte, plus les données sont transférées rapidement de la source vers la destination.

Integration Services propose un jeu complet de types de données numeric afin que vous puissiez faire correspondre le type de données et la taille des données. Par exemple, si les valeurs d'une colonne dont le type de données est DT_UI8 sont toujours des entiers compris entre 0 et 3000, vous pouvez opter pour le type de données DT_UI2. De même, si une colonne dont le type de données est DT_CY pourrait se satisfaire d'un type de données integer aux vues des données du package, vous pouvez opter pour le type de données DT_I4.

Vous pouvez également changer le type de données d'une colonne contenant des données de date/heure afin d'extraire la partie jour ou heure des données. Par exemple, si vous remplacez le type de données d'une colonne DT_DBTIMESTAMP par DT_DBTIME, seules les heures, les minutes et les secondes de la valeur sont disponibles.

Vous pouvez modifier les types de données d'une colonne de l'une des manières suivantes :

  • Utilisation d'une transformation pour remplacer les valeurs des colonnes par les résultats d'une expression ou pour créer une copie d'une colonne contenant un type de données différent de la colonne d'origine. Pour plus d'informations, consultez Transformation de colonne dérivée.
  • Utilisation d'une transformation pour convertir le type de données d'une colonne en un type différent. Pour plus d'informations, consultez Transformation de conversion de données.
ms141036.note(fr-fr,SQL.90).gifRemarque :
Les valeurs booléennes ne sont pas des nombres mais des valeurs logiques. Bien que les valeurs booléennes peuvent apparaître sous la forme de nombres dans certains environnements, elles ne sont pas stockées en tant que tels et divers langages de programmation les représentent de manière différente en tant que valeurs numériques, notamment les méthodes .NET Framework. Par exemple, les fonctions de conversion disponibles dans Visual Basic convertissent la valeur True en -1 ; en revanche, la méthode System.Convert.ToInt32 du .NET Framework convertit True en +1. Le langage d'expression Integration Services convertit True en -1. Pour éviter des erreurs ou des résultats inattendus, n'écrivez pas de code fondé sur des valeurs numériques précises pour les valeurs True et False. Si possible, limitez l'usage de variables booléennes aux valeurs logiques pour lesquelles elles sont conçues.

Mappage des types de données Integration Services avec les types de données de base de données

Le tableau ci-dessous fournit des directives pour le mappage des types de données employés par certaines base de données avec des types de données Integration Services. Ces mappages sont résumés à partir des fichiers de mappage qu'utilise l'Assistant Importation et Exportation SQL Server lorsqu'il importe des données depuis ces sources. Pour plus d'informations sur ces fichiers de mappage, consultez Création de packages à l'aide de l'Assistant Importation et Exportation SQL Server.

ms141036.note(fr-fr,SQL.90).gifImportant :
Ces mappages n'ont pas pour but de proposer une équivalence stricte. Ils sont fournis uniquement à titre d'indication. Dans certaines situations, vous devrez peut-être utiliser un type de données différent de celui utilisé dans ce tableau.
Type de données SQL Server (SQLOLEDB; SQLNCLI) SQL Server (SqlClient) Jet Oracle (MSDAORA) Oracle (OracleClient) DB2 (DB2OLEDB) DB2 (IBMDADB2)

DT_BOOL

bit

bit

Bit

DT_BYTES

binary, varbinary, timestamp

binary, varbinary, timestamp

BigBinary, VarBinary

RAW

RAW

DT_CY

smallmoney, money

smallmoney, money

Currency

DT_DATE

DT_DBDATE

DT_DBTIME

DT_DBTIMESTAMP

datetime, smalldatetime

datetime, smalldatetime

DateTime

TIMESTAMP, DATE, INTERVAL

TIMESTAMP, DATE, INTERVAL

TIME, TIMESTAMP, DATE

TIME, TIMESTAMP, DATE

DT_DECIMAL

DT_FILETIME

DT_GUID

uniqueidentifier

uniqueidentifier

GUID

DT_I1

DT_I2

smallint

smallint

Short

SMALLINT

SMALLINT

DT_I4

int

int

Long

INTEGER

INTEGER

DT_I8

bigint

bigint

BIGINT

BIGINT

DT_NUMERIC

decimal, numeric

decimal, numeric

Decimal

NUMBER, INT

NUMBER, INT

DECIMAL, NUMERIC

DECIMAL, NUMERIC

DT_R4

real

real

Single

REAL

REAL

DT_R8

float

float

Double

FLOAT, REAL

FLOAT, REAL

FLOAT, DOUBLE

FLOAT, DOUBLE

DT_STR

char, varchar

VarChar

CHAR, ROWID, VARCHAR2

CHAR, VARCHAR

CHAR, VARCHAR

DT_UI1

tinyint

tinyint

Byte

DT_UI2

DT_UI4

DT_UI8

DT_WSTR

nchar, nvarchar, sql_variant, xml

char, varchar, nchar, nvarchar, sql_variant, xml

LongText

NVARCHAR2, NCHAR

CHAR, ROWID, VARCHAR2, NVARCHAR2, NCHAR

GRAPHIC, VARGRAPHIC

GRAPHIC, VARGRAPHIC

DT_IMAGE

image

image

LongBinary

LONG RAW, BLOB, LOBLOCATOR, BFILE, VARGRAPHIC, LONG VARGRAPHIC, défini par l'utilisateur

LONG RAW, BLOB, LOBLOCATOR, BFILE, VARGRAPHIC, LONG VARGRAPHIC, défini par l'utilisateur

CHAR () FOR BIT DATA, VARCHAR () FOR BIT DATA

CHAR () FOR BIT DATA, VARCHAR () FOR BIT DATA, BLOB

DT_NTEXT

ntext

text, ntext

NCLOB, NVARCHAR, TEXT

LONG, CLOB, NCLOB, NVARCHAR, TEXT

LONG VARCHAR, NCHAR, NVARCHAR, TEXT

LONG VARCHAR, DBCLOB, NCHAR, NVARCHAR, TEXT

DT_TEXT

text

CLOB, LONG

LONG VARCHAR FOR BIT DATA

LONG VARCHAR FOR BIT DATA, CLOB

Pour obtenir des informations sur le mappage des types de données dans le flux de données, consultez Mapping Data Types in the Data Flow.

Voir aussi

Concepts

Utilisation de données dans des flux de données

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

15 septembre 2007

Contenu modifié :
  • Mise à jour de la description du type de données DT_DBTIMESTAMP.

17 juillet 2006

Contenu modifié :
  • Problèmes susceptibles de survenir lors de la conversion des types de données booléennes en entiers.
  • Remarque indiquant que les valeurs de colonne de type DT_STR ou DT_WSTR qui contiennent des indicateurs de fin NULL supplémentaires sont tronquées dès le premier caractère NULL.

5 décembre 2005

Contenu modifié :
  • Ajout d'informations et d'un lien vers une rubrique sur le mappage des types de données Integration Services avec des types de données managées.
  • Ajout d'une comparaison entre DT_DATE et DT_DBTIMESTAMP.