Utilisation de types de données dans le flux de données

S’applique à :SQL Server SSIS Integration Runtime dans Azure Data Factory

Lors du développement d'un composant de flux de données personnalisé dans Integration Services, vous travaillez constamment avec des types de données, en copiant des données depuis et vers les mémoires tampons du flux de données et en transformant des valeurs. Les informations contenues dans cette rubrique vous aident à choisir les types de données Integration Services corrects ainsi qu’à utiliser les méthodes appropriées quand vous travaillez avec celles-ci.

Insertion de données dans le flux de données

La classe PipelineBuffer fournit une série de méthodes Set pour copier des données dans des colonnes tampons, ainsi qu’une série correspondante de méthodes Get pour extraire des données dans les colonnes tampons. Les tableaux suivants indiquent la méthode à utiliser avec chaque type de données Integration Services.

Méthodes Set à utiliser avec les types de données

Le tableau suivant répertorie le type de données dans la première colonne, puis les méthodes Set et Get correspondantes.

Type de données Set, méthode Get, méthode
DT_BOOL SetBoolean GetBoolean
DT_BYTES SetBytes GetBytes
DT_CY SetDecimal GetDecimal
DT_DATE SetDateTime GetDateTime
DT_DBDATE SetDate GetDate
DT_DBTIME SetTime GetTime
DT_DBTIME2 SetTime GetTime
DT_DBTIMESTAMP SetDateTime GetDateTime
DT_DBTIMESTAMP2 SetDateTime GetDateTime
DT_DBTIMESTAMPOFFSET SetDateTimeOffset GetDateTimeOffset
DT_DECIMAL SetDecimal GetDecimal
DT_FILETIME SetDateTime GetDateTime
DT_GUID SetGuid GetGuid
DT_I1 SetSByte GetSByte
DT_I2 SetInt16 GetInt16
DT_I4 SetInt32 GetInt32
DT_I8 SetInt64 GetInt64
DT_IMAGE AddBlobData ou AddBlobData GetBlobData
DT_NTEXT AddBlobData ou AddBlobData GetBlobData
DT_NULL SetNull Aucune méthode Get n’est applicable à ce type de données.
DT_NUMERIC SetDecimal GetDecimal
DT_R4 SetSingle GetSingle
DT_R8 SetDouble GetDouble
DT_STR SetString GetString
DT_TEXT AddBlobData ou AddBlobData GetBlobData
DT_UI1 SetByte GetByte
DT_UI2 SetUInt16 GetUInt16
DT_UI4 SetUInt32 GetUInt32
DT_UI8 SetUInt64 GetUInt64
DT_WSTR SetString GetString

Types de données à utiliser avec les méthodes Set

Set, méthode Type de données
AddBlobData ou AddBlobData DT_IMAGE, DT_NTEXTou DT_TEXT
SetBoolean DT_BOOL
SetByte DT_UI1
SetBytes DT_BYTES
SetDate DT_DBDATE
SetDateTime DT_DATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 ou DT_FILETIME
SetDateTimeOffset DT_DBTIMESTAMPOFFSET
SetDecimal DT_CY, DT_DECIMALou DT_NUMERIC
SetDouble DT_R8
SetGuid DT_GUID
SetInt16 DT_I2
SetInt32 DT_I4
SetInt64 DT_I8
SetNull DT_NULL
SetSByte DT_I1
SetSingle DT_R4
SetString DT_STR ou DT_WSTR
SetTime DT_DBTIME ou DT_DBTIME2
SetUInt16 DT_UI2
SetUInt32 DT_UI4
SetUInt64 DT_UI8

Mappage des types de données dans le flux de données

Lors du déplacement de données depuis des sources vers des destinations en passant par des transformations, un composant de flux de données doit parfois convertir des types de données entre les types SQL Server Integration Services définis dans l’énumération DataType et les types de données managés de Microsoft .NET Framework définis dans l’espace de noms System. De plus, un composant doit parfois convertir un type de données Integration Services en un autre type de données pour que ce type puisse être converti en un type managé.

Notes

Les fichiers de mappage au format XML installés par défaut dans C:\Program Files\Microsoft SQL Server\130\DTS\MappingFiles ne sont pas liés au mappage des types de données décrit dans cette rubrique. Ces fichiers mappent les types de données d’une version de base de données ou d’un système vers un autre (par exemple de SQL Server vers Oracle), et ils sont utilisés seulement par l’Assistant Importation et exportation de SQL Server. Pour plus d’informations sur ces fichiers de mappage, consultez Assistant Importation et Exportation SQL Server.

Mappage entre Integration Services et les types de données managées

Les méthodes BufferTypeToDataRecordType et DataRecordTypeToBufferType mappent les types de données Integration Services à des types de données managés.

Attention

Les développeurs doivent utiliser ces méthodes de la classe PipelineComponent avec prudence et peuvent coder leurs propres méthodes de mappage des types de données si elles conviennent mieux aux besoins uniques de leurs composants personnalisés. Les méthodes existantes ne considèrent aucune précision numérique ou échelle, ni d'autres propriétés étroitement liées au type de données lui-même. Microsoft est susceptible de modifier ou de supprimer ces méthodes, ou de modifier les mappages effectués, dans une future version d’Integration Services.

Le tableau suivant indique la manière dont les méthodes BufferTypeToDataRecordType et DataRecordTypeToBufferType mappent différents types de données Integration Services à des types de données managés.

Type de données Integration Services Type de données managées auquel il est mappé
DT_WSTR System.String
DT_BYTES Tableau de System.Byte
DT_DBTIMESTAMP System.DateTime
DT_DBTIMESTAMP2 System.DateTime
DT_DBTIMESTAMPOFFSET System.DateTimeOffset
DT_DBDATE System.DateTime
DT_DBTIME System.TimeSpan
DT_DBTIME2 System.TimeSpan
DT_DATE System.DateTime
DT_FILETIME System.DateTime
DT_NUMERIC System.Decimal
DT_GUID System.Guid
DT_I1 System.SByte
DT_I2 System.Int16
DT_I4 System.Int32
DT_I8 System.Int64
DT_BOOL System.Boolean
DT_R4 System.Single
DT_R8 System.Double
DT_UI1 System.Byte
DT_UI2 System.UInt16
DT_UI4 System.UInt32
DT_UI8 System.UInt64

Mappage des types de données Integration Services à des fins d'adéquation avec les types de données managées

Parfois, un composant de flux de données doit également convertir un type de données Integration Services en autre type de données pour que ce type puisse être converti en type managé. La classe de méthode ConvertBufferDataTypeToFitManaged mappe les types de données Integration Services à d’autres types de données qui peuvent alors être mappés aux types de données managés en utilisant la méthode BufferTypeToDataRecordType.

Attention

Les développeurs doivent utiliser ces méthodes de la classe PipelineComponent avec prudence et peuvent coder leurs propres méthodes de mappage des types de données si elles conviennent mieux aux besoins uniques de leurs composants personnalisés. Les méthodes existantes ne considèrent aucune précision numérique ou échelle, ni d'autres propriétés étroitement liées au type de données lui-même. Microsoft est susceptible de modifier ou de supprimer ces méthodes, ou de modifier les mappages effectués, dans une future version d’Integration Services.

Le tableau suivant indique la façon dont la méthode ConvertBufferDataTypeToFitManaged mappe les types de données Integration Services à d’autres types de données Integration Services.

Type de données Integration Services d'origine Type de données Intégration Services auquel il est mappé
DT_DECIMAL DT_NUMERIC
DT_CY DT_NUMERIC
DT_DATE DT_DBTIMESTAMP
DT_DBDATE DT_DBTIMESTAMP
DT_FILETIME DT_DBTIMESTAMP
DT_DBTIMESTAMP2 DT_DBTIMESTAMP
DT_DBTIME DT_DBTIME2
DT_BOOL DT_I4
DT_TEXT DT_WSTR
DT_NTEXT DT_WSTR
DT_STR DT_WSTR
DT_IMAGE DT_BYTES

Notes

La méthode ConvertBufferDataTypeToFitManaged ne renvoie pas de valeur pour le type de données DT_DBTIMESTAMPOFFSET et un objet UnsupportedBufferDataTypeException est généré. Vous devez convertir le type de données DT_DBTIMESTAMPOFFSET en un type de données date/heure Integration Services qui peut être mappé à un type de données managé. Pour obtenir la liste des types de données date/heure Integration Services qui peuvent être mappés à des types de données managés, consultez le tableau de la section précédente, « Mappage entre Integration Services et les types de données managés ». Pour plus d’informations sur la conversion des types de données, consultez Types de données Integration Services.

Voir aussi

BufferTypeToDataRecordType
DataRecordTypeToBufferType
ConvertBufferDataTypeToFitManaged
Types de données d’Integration Services