Utilizzo di tipi di dati nel flusso di dati

Si applica a:SQL Server Integration Runtime SSIS in Azure Data Factory

Quando si sviluppa un componente del flusso di dati personalizzato in Integration Services, si utilizzano costantemente i tipi di dati, copiando dati in e dai buffer del flusso di dati e trasformando valori. Le informazioni di questo argomento consentono di scegliere i tipi di dati di Integration Services corretti e di usare i metodi corretti per gestirli.

Inserimento di dati nel flusso di dati

La classe PipelineBuffer fornisce una serie di metodi Set per la copia di dati in colonne del buffer e una serie corrispondente di metodi Get per il recupero dei dati dalle colonne del buffer. Le tabelle seguenti indicano quale metodo usare con ogni tipo di dati di Integration Services.

Metodi Set da utilizzare con i tipi di dati

La tabella seguente elenca i tipi di dati nella prima colonna e quindi i corrispondenti metodi Set e Get.

Tipo di dati Metodo Set Metodo Get
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 o AddBlobData GetBlobData
DT_NTEXT AddBlobData o AddBlobData GetBlobData
DT_NULL SetNull A questo tipo di dati non è applicabile alcun metodo Get.
DT_NUMERIC SetDecimal GetDecimal
DT_R4 SetSingle GetSingle
DT_R8 SetDouble GetDouble
DT_STR SetString GetString
DT_TEXT AddBlobData o AddBlobData GetBlobData
DT_UI1 SetByte GetByte
DT_UI2 SetUInt16 GetUInt16
DT_UI4 SetUInt32 GetUInt32
DT_UI8 SetUInt64 GetUInt64
DT_WSTR SetString GetString

Tipi di dati da utilizzare con i metodi Set

Metodo Set Tipo di dati
AddBlobData o AddBlobData DT_IMAGE, DT_NTEXTo DT_TEXT
SetBoolean DT_BOOL
SetByte DT_UI1
SetBytes DT_BYTES
SetDate DT_DBDATE
SetDateTime DT_DATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 o DT_FILETIME
SetDateTimeOffset DT_DBTIMESTAMPOFFSET
SetDecimal DT_CY, DT_DECIMALo 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 o DT_WSTR
SetTime DT_DBTIME o DT_DBTIME2
SetUInt16 DT_UI2
SetUInt32 DT_UI4
SetUInt64 DT_UI8

Mapping dei tipi di dati nel flusso di dati

Durante lo spostamento di dati dalle origini attraverso le trasformazioni verso le destinazioni, un componente del flusso di dati deve a volte convertire i tipi di dati tra i tipi di SQL Server Integration Services definiti nell'enumerazione DataType e i tipi di dati gestiti di Microsoft .NET Framework definiti nello spazio dei nomi System. Inoltre, un componente deve a volte convertire un tipo di dati di Integration Services in un altro affinché possa essere convertito in un tipo gestito.

Nota

I file di mapping in formato XML installati per impostazione predefinita in C:\Programmi\Microsoft SQL Server\130\DTS\MappingFiles non sono correlati al mapping dei tipi di dati descritto in questo argomento. Questi file consentono di eseguire il mapping dei tipi di dati da un sistema o una versione di database a un'altra, ad esempio da SQL Server a Oracle, e vengono utilizzati solo dall'Importazione/Esportazione guidata di SQL Server. Per altre informazioni su questi file di mapping, vedere Importazione/Esportazione guidata SQL Server.

Mapping tra tipi di dati di Integration Services e tipi di dati gestiti

I metodi BufferTypeToDataRecordType e DataRecordTypeToBufferType eseguono il mapping dei tipi di dati di Integration Services a tipi di dati gestiti.

Attenzione

Gli sviluppatori devono utilizzare questi metodi della classe PipelineComponent con attenzione e possono scegliere di creare metodi di mapping dei tipi di dati personalizzati più appropriati per le esigenze specifiche dei loro componenti personalizzati. I metodi esistenti non prendono in considerazione la precisione numerica o la scala o altre proprietà strettamente correlate al tipo di dati stesso. Microsoft potrebbe modificare o rimuovere questi metodi oppure modificare i mapping che eseguono in una versione futura di Integration Services.

Nella tabella seguente sono elencati i mapping dei metodi BufferTypeToDataRecordType e DataRecordTypeToBufferType di vari tipi di dati di Integration Services a tipi di dati gestiti.

Tipo di dati di Integration Services Tipo di dati gestito mappato
DT_WSTR System.String
DT_BYTES Matrice di 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

Mapping dei tipi di dati di Integration Services in base ai tipi di dati gestiti

A volte, un componente del flusso di dati deve anche convertire un tipo di dati di Integration Services in un altro affinché possa essere convertito in un tipo gestito. La classe del metodo ConvertBufferDataTypeToFitManaged esegue il mapping dei tipi di dati di Integration Services ad altri tipi di dati di Integration Services che possono quindi essere mappati a tipi di dati gestiti tramite il metodo BufferTypeToDataRecordType.

Attenzione

Gli sviluppatori devono utilizzare questi metodi della classe PipelineComponent con attenzione e possono scegliere di creare metodi di mapping dei tipi di dati personalizzati più appropriati per le esigenze specifiche dei loro componenti personalizzati. I metodi esistenti non prendono in considerazione la precisione numerica o la scala o altre proprietà strettamente correlate al tipo di dati stesso. Microsoft potrebbe modificare o rimuovere questi metodi oppure modificare i mapping che eseguono in una versione futura di Integration Services.

Nella tabella seguente sono elencati i mapping del metodo ConvertBufferDataTypeToFitManaged dei tipi d dati di Integration Services con altri tipi di dati di Integration Services.

Tipo di dati originale di Integration Services Tipo di dati di Integration Services mappato
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

Nota

Il metodo ConvertBufferDataTypeToFitManaged non restituisce un valore per il tipo di dati DT_DBTIMESTAMPOFFSET e si verifica UnsupportedBufferDataTypeException. È necessario convertire il tipo di dati DT_DBTIMESTAMPOFFSET in uno dei tipi di dati data/ora di Integration Services di cui è possibile eseguire il mapping a un tipo di dati gestito. Per un elenco di tipi di dati data/ora di Integration Services di cui è possibile eseguire il mapping a un tipo di dati gestito, vedere la tabella nella sezione precedente, "Mapping tra tipi di dati di Integration Services e tipi di dati gestiti". Per informazioni sulla conversione dei tipi di dati, vedere Tipi di dati di Integration Services.

Vedere anche

BufferTypeToDataRecordType
DataRecordTypeToBufferType
ConvertBufferDataTypeToFitManaged
Tipi di dati di Integration Services