Trabajar con tipos de datos del flujo de datos
Se aplica a:SQL Server SSIS Integration Runtime en Azure Data Factory
Al desarrollar un componente de flujo de datos personalizado en Integration Services, trabaja constantemente con tipos de datos, copiando datos en y fuera de búferes de flujo de datos y transformando valores. La información de este tema le ayuda a elegir los tipos de datos de Integration Services correctos y a utilizar los métodos correctos al trabajar con ellos.
Insertar datos en el flujo de datos
La clase PipelineBuffer proporciona una serie de métodos Set para copiar los datos en las columnas de búfer y una serie correspondiente de métodos Get para recuperar los datos de las columnas de búfer. En las tablas siguientes se muestra qué método usar con cada tipo de datos de Integration Services.
Establecer los métodos que se van a usar con los tipos de datos
En la tabla siguiente se enumeran los tipos de datos en la primera columna y, a continuación, se enumeran los métodos Set y Get correspondientes.
Tipos de datos que se van a usar con los métodos Set
Asignar los tipos de datos en el flujo de datos
Al mover datos desde los orígenes a través de transformaciones hasta los destinos, un componente de flujo de datos debe realizar a veces la conversión de tipos de datos entre los tipos de SQL Server Integration Services definidos en la enumeración DataType y los tipos de datos administrados de Microsoft .NET Framework definidos en el espacio de nombres del sistema. Además, un componente debe realizar a veces la conversión de un tipo de datos de Integration Services en otro antes de que ese tipo se pueda convertir en un tipo administrado.
Nota
Los archivos de asignación en formato XML que se instalan de forma predeterminada en C:\Archivos de programa\Microsoft SQL Server\130\DTS\MappingFiles no tienen que ver con la asignación de tipo de datos descrita en este tema. Estos archivos asignan los tipos de datos de una versión de base de datos o sistema a otra (por ejemplo, de SQL Server a Oracle) y solo los usa el Asistente para importación y exportación de SQL Server. Para obtener más información sobre estos archivos de asignación, vea Asistente para importación y exportación de SQL Server.
Realizar asignaciones entre los tipos de datos de Integration Services y los administrados
Los métodos BufferTypeToDataRecordType y DataRecordTypeToBufferType asignan los tipos de datos de Integration Services a los tipos de datos administrados.
Precaución
Los programadores deben utilizar estos métodos de la clase PipelineComponent con precaución y quizá prefieran codificar los métodos de asignación de tipo de datos propios que mejor se ajustan a las necesidades únicas de sus componentes personalizados. Los métodos existentes no consideran la precisión numérica o la escala, u otras propiedades estrechamente relacionadas con el propio tipo de datos. Microsoft puede modificar o quitar estos métodos, o modificar las asignaciones que realizan, en una versión futura de Integration Services.
En la siguiente tabla se muestra cómo los métodos BufferTypeToDataRecordType y DataRecordTypeToBufferType asignan los distintos tipos de datos de Integration Services a los tipos de datos administrados.
Tipo de datos de Integration Services | Se asigna a este tipo de datos administrado |
---|---|
DT_WSTR | System.String |
DT_BYTES | Matriz 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 |
Asignar los tipos de datos de Integration Services para que se ajusten a los tipos de datos administrados
A veces, un componente de flujo de datos debe convertir un tipo de datos de Integration Services en otro antes de que ese tipo se pueda convertir en un tipo administrado. La clase de método ConvertBufferDataTypeToFitManaged asigna los tipos de datos de Integration Services a otros tipos de datos de Integration Services que se pueden asignar después a los tipos de datos administrados utilizando el método BufferTypeToDataRecordType.
Precaución
Los programadores deben utilizar estos métodos de la clase PipelineComponent con precaución y quizá prefieran codificar los métodos de asignación de tipo de datos propios que mejor se ajustan a las necesidades únicas de sus componentes personalizados. Los métodos existentes no consideran la precisión numérica o la escala, u otras propiedades estrechamente relacionadas con el propio tipo de datos. Microsoft puede modificar o quitar estos métodos, o modificar las asignaciones que realizan, en una versión futura de Integration Services.
En la tabla siguiente se muestra cómo el método ConvertBufferDataTypeToFitManaged asigna tipos de datos de Integration Services a otros tipos de datos de Integration Services.
Tipo de datos original de Integration Services | Se asigna a este tipo de datos de Integration Services |
---|---|
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
El método ConvertBufferDataTypeToFitManaged no devuelve un valor para el tipo de datos DT_DBTIMESTAMPOFFSET y se produce una excepción UnsupportedBufferDataTypeException. Debe convertir el tipo de datos DT_DBTIMESTAMPOFFSET en uno de los tipos de datos de fecha y hora de Integration Services que se pueden asignar a un tipo de datos administrado. Para obtener una lista de los tipos de datos de fecha y hora de Integration Services que se pueden asignar a los tipos de datos administrados, vea la tabla de la sección anterior, "Realizar asignaciones entre los tipos de datos de Integration Services y los administrados". Para obtener información acerca de cómo convertir los tipos de datos, vea Tipos de datos de Integration Services.
Consulte también
BufferTypeToDataRecordType
DataRecordTypeToBufferType
ConvertBufferDataTypeToFitManaged
Tipos de datos de Integration Services
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de