Tipos de datos de Integration Services
Actualizado: 15 de septiembre de 2007
Cuando los datos entran en un flujo de datos en un paquete, el origen que extrae los datos convierte los datos en un tipo de datos de Integration Services. A los datos numéricos se les asigna un tipo de dato numérico, a los datos de cadena se les asigna un tipo de datos de caracteres y se asignan fechas a un tipo de datos de fecha. A otros datos, tales como GUID y bloques de objetos binarios grandes (BLOB), también se les asignan los tipos de datos de Integration Services correspondientes. Si los datos son de un tipo que no se puede convertir en un tipo de datos de Integration Services se produce un error.
Algunos componentes del flujo de datos convierten tipos de datos entre los tipos de datos de Integration Services y los tipos de datos administrados de Microsoft .NET Framework. Para obtener más información sobre las asignaciones entre los tipos de datos de Integration Services y los tipos de datos administrados, vea Mapping Data Types in the Data Flow.
La siguiente tabla enumera los tipos de datos de Integration Services.
Tipo de datos | Descripción |
---|---|
DT_BOOL |
Un valor booleano. |
DT_BYTES |
Un valor de datos binarios. La longitud es variable y la longitud máxima es de 8000 bytes. |
DT_CY |
Un valor de moneda. Este tipo de datos es un entero con signo de ocho bytes con una escala de 4 y una precisión máxima de 19. |
DT_DATE |
Una estructura de fecha compuesta por año, mes, día y hora. El tipo de datos DT_DATE se implementa utilizando un número de punto flotante de 8 bytes. Los días se representan mediante incrementos de números enteros, comenzando por el 30 de diciembre de 1899 y la medianoche como hora cero. Los valores de hora se expresan como el valor absoluto de la parte fraccionaria del número. Sin embargo, un valor de punto flotante no puede representar todos los valores reales; por lo tanto, existen límites en el intervalo de fechas que se puede presentar en DT_DATE. Por otra parte, DT_DBTIMESTAMP se representa mediante una estructura que posee campos individuales para año, mes, día, horas, minutos, segundos y milisegundos. Este tipo de datos no tiene límites respecto a los intervalos de fechas que puede presentar. |
DT_DBDATE |
Una estructura de fecha compuesta por año, mes y día. |
DT_DBTIME |
Una estructura de hora compuesta por horas, minutos y segundos. |
DT_DBTIMESTAMP |
Una estructura de marca de tiempo compuesta por año, mes, día, horas, minutos, segundos y milisegundos. |
DT_DECIMAL |
Un valor numérico exacto con una precisión fija y una escala fija. Este tipo de dato es un entero sin signo de 12 bytes con un signo aparte, una escala de 0 a 28 y una precisión máxima de 29. |
DT_FILETIME |
Un valor de 64 bits que representa la cantidad de intervalos de 100 nanosegundos desde el 1 de enero de 1601. |
DT_GUID |
Identificador único global (GUID). |
DT_I1 |
Un entero con signo de un byte. |
DT_I2 |
Un entero con signo de dos bytes. |
DT_I4 |
Un entero con signo de cuatro bytes. |
DT_I8 |
Un entero con signo de ocho bytes. |
DT_NUMERIC |
Un valor numérico exacto con una precisión y escala fijas. Este tipo de dato es un entero sin signo de 16 bytes con un signo aparte, una escala de 0 a 38 y una precisión máxima de 38. |
DT_R4 |
Un valor de coma flotante y precisión única. |
DT_R8 |
Un valor de coma flotante y precisión doble. |
DT_STR |
Una cadena de caracteres ANSI/MBCS terminada en NULL, con una longitud máxima de 8000 caracteres. (Si un valor de columna contiene otros terminadores NULL, la cadena se truncará cuando se encuentre el primer NULL.) |
DT_UI1 |
Un entero sin signo de un byte. |
DT_UI2 |
Un entero sin signo de dos bytes. |
DT_UI4 |
Un entero sin signo de cuatro bytes. |
DT_UI8 |
Un entero sin signo de ocho bytes. |
DT_WSTR |
Una cadena de caracteres Unicode terminada en NULL, con una longitud máxima de 4000 caracteres. (Si un valor de columna contiene otros terminadores NULL, la cadena se truncará cuando se encuentre el primer NULL.) |
DT_IMAGE |
Un valor binario con un tamaño máximo de 231-1 (2.147.483.647) bytes. . |
DT_NTEXT |
Una cadena de caracteres Unicode con una longitud máxima de 230 - 1 (1.073.741.823) caracteres. |
DT_TEXT |
Una cadena de caracteres ANSI/MBCS con una longitud máxima de 231 -1 (2.147.483.647) caracteres. |
Cambiar el tipo de datos de las columnas
Si los datos en una columna no requieren el ancho total asignado por el tipo de datos de origen, puede ser recomendable cambiar el tipo de datos de la columna. Si se hace que cada fila de datos sea lo más estrecha posible, esto ayuda a optimizar el rendimiento cuando se transfieren datos porque, cuanto más estrecha sea una fila, más rápido los datos se desplazarán del origen al destino.
Integration Services incluye un conjunto completo de tipos de datos numéricos, de manera que puede hacer coincidir estrechamente el tipo de datos con el tamaño de los datos. Por ejemplo, si los valores en una columna con un tipo de datos DT_UI8 siembre son enteros entre 0 y 3000, puede cambiar el tipo de datos a DT_UI2. De forma similar, si una columna con el tipo de datos DT_CY puede reunir los requisitos de datos de paquete utilizando un tipo de datos enteros, puede cambiar el tipo de datos a DT_I4.
También puede cambiar el tipo de datos en una columna con los datos de fecha/hora para extraer la parte del día o la hora de los datos. Por ejemplo, si cambia el tipo de datos de una columna de DT_DBTIMESTAMP a DT_DBTIME, solamente la parte de horas, minutos y segundos del valor estará disponible.
Puede cambiar el tipo de datos de una columna de las siguientes maneras:
- Mediante el uso de una transformación para reemplazar los valores de columna con los resultados de una expresión, o crear una copia de una columna que tiene un tipo de datos diferente que la columna original. Para obtener más información, vea Transformación Columna derivada.
- Mediante una transformación para convertir el tipo de datos de una columna de un tipo de datos en un tipo de datos diferente. Para obtener más información, vea Transformación Conversión de datos.
[!NOTA] Los valores booleanos son valores lógicos, no son números. Aunque los valores booleanos pueden mostrarse como números en algunos entornos, no se almacenan como números, y varios lenguajes de programación representan los valores booleanos como valores numéricos de maneras diferentes, como sucede con los métodos de .NET Framework. Por ejemplo, las funciones de conversión disponibles en Visual Basic convierten el valor True en -1; sin embargo, el método System.Convert.ToInt32 de .NET Framework convierte True en +1. Por su parte, el lenguaje de expresiones de Integration Services convierte True en -1. Para evitar errores o resultados inesperados, no debe escribirse código que se base en valores numéricos específicos para True y False. Siempre que sea posible, se debe restringir el uso de las variables booleanas a los valores lógicos para los que están diseñadas.
Asignar tipos de datos de Integration Services a tipos de datos de bases de datos
En la siguiente tabla se proporciona orientación sobre cómo asignar los tipos de datos que usan ciertas bases de datos a los tipos de datos de Integration Services. Estas asignaciones se resumen a partir de los archivos de asignación que utiliza el Asistente para importación y exportación de SQL Server cuando importa datos de los orígenes mencionados. Para obtener más información acerca de los archivos de asignación, vea Crear paquetes mediante el Asistente para importación y exportación de SQL Server.
Importante: |
---|
Estas asignaciones no están diseñadas para representar equivalencias estrictas, sino sólo para ofrecer orientación. En ciertas situaciones, puede ser necesario utilizar un tipo de datos diferente del incluido en esta tabla. |
Tipo de datos | 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, definido por el usuario |
LONG RAW, BLOB, LOBLOCATOR, BFILE, VARGRAPHIC, LONG VARGRAPHIC, definido por el usuario |
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 |
Para obtener información acerca de la asignación de tipos de datos en el flujo de datos, vea Mapping Data Types in the Data Flow.
Vea también
Conceptos
Trabajar con datos en flujos de datos
Ayuda e información
Obtener ayuda sobre SQL Server 2005
Historial de cambios
Versión | Historial |
---|---|
15 de septiembre de 2007 |
|
17 de julio de 2006 |
|
5 de diciembre de 2005 |
|