Compartir a través de


Cast (expresión de SSIS): conversión de tipos de datos de SSIS

Convierte explícitamente una expresión de un tipo de datos a otro. El operador de conversión también puede funcionar como un operador de truncamiento.

Sintaxis

        (type_spec) expression
      

Argumentos

  • type_spec
    Tipo de datos de SSIS válido.

  • expression
    Expresión válida.

Tipos de resultado

Tipo de datos de type_spec. Para obtener más información, vea Tipos de datos de Integration Services.

Comentarios

El siguiente diagrama muestra operaciones de conversión válidas.

Conversiones válidas y no válidas entre tipos de datos

La conversión a algunos tipos de datos requiere parámetros. En la tabla siguiente se muestran estos tipos de datos y sus parámetros.

Tipo de datos

Parámetros

Ejemplo

DT_STR

charcount

codepage

(DT_STR,30,1252) convierte 30 bytes, o 30 caracteres individuales, al tipo de datos DT_STR con la página de códigos 1252.

DT_WSTR

Charcount

(DT_WSTR,20) convierte 20 pares de bytes, o 20 caracteres Unicode, al tipo de datos DT_WSTR.

DT_BYTES

Bytecount

(DT_BYTES,50) convierte 50 bytes al tipo de datos DT_BYTES.

DT_DECIMAL

Scale

(DT_DECIMAL,2) convierte un valor numérico al tipo de datos DT_DECIMAL con una escala de 2.

DT_NUMERIC

Precision

Scale

(DT_NUMERIC,10,3) convierte un valor numérico al tipo de datos DT_NUMERIC con una precisión de 10 decimales y una escala de 3.

DT_TEXT

Codepage

(DT_TEXT,1252) convierte un valor al tipo de datos DT_TEXT con la página de códigos 1252.

Cuando se convierte una cadena al tipo de datos DT_DATE, o viceversa, se usa la configuración regional de la transformación. Sin embargo, la fecha está en el formato ISO de AAAA-MM-DD, sin tener en cuenta si la preferencia de la configuración regional utiliza el formato ISO.

Nota

Para convertir una cadena en un tipo de datos de fecha que no sea DT_DATE, vea Tipos de datos de Integration Services.

Si la página de códigos es una página de códigos de caracteres multibyte, el número de bytes y caracteres puede diferir. La conversión de DT_WSTR a DT_STR con el mismo valor de charcount puede provocar el truncamiento de los caracteres finales de la cadena convertida. Si hay suficiente espacio de almacenamiento en la columna de la tabla de destino, establezca el valor del parámetro charcount de modo que refleje el número de bytes requeridos por la página de códigos multibyte. Por ejemplo, si convierte datos de caracteres a un tipo de datos DT_STR con la página de códigos 936, debe establecer el valor de charcount en un valor hasta dos veces mayor que el número de caracteres que espera que contengan los datos; si convierte datos de caracteres mediante la página de códigos UTF-8, debe establecer charcount en un valor hasta cuatro veces mayor.

Para obtener más información sobre la estructura de los tipos de datos de fecha, vea Tipos de datos de Integration Services.

Ejemplos de conversión de tipos de datos de SSIS

Este ejemplo convierte un valor numérico en un entero.

(DT_I4) 3.57

Este ejemplo convierte un entero en una cadena de caracteres con la página de códigos 1252.

(DT_STR,1,1252)5

Este ejemplo convierte una cadena de tres caracteres en caracteres de doble byte.

(DT_WSTR,3)"Cat"

Este ejemplo convierte un entero en un decimal con una escala de dos.

(DT_DECIMAl,2)500

Este ejemplo convierte un entero en un valor numérico con una precisión de siete y una escala de tres.

(DT_NUMERIC,7,3)4000

Este ejemplo convierte los valores de la columna FirstName, definida con un tipo de datos nvarchar y una longitud de 50, en una cadena de caracteres con la página de códigos 1252.

(DT_STR,50,1252)FirstName

Este ejemplo convierte el literal de cadena "True" en un valor booleano.

(DT_BOOL)"True"

En este ejemplo se convierte un literal de cadena en DT_DBDATE.

(DT_DBDATE) "1999-10-11"

En este ejemplo se convierte un literal de cadena en el tipo de datos DT_DBTIME2 que utiliza 5 dígitos para las fracciones de segundo. (El tipo de datos DT_DBTIME2 puede tener entre 0 y 7 dígitos especificados para las fracciones de segundo.)

(DT_DBTIME2, 5) "16:34:52.12345"

En este ejemplo se convierte un literal de cadena en el tipo de datos DT_DBTIMESTAMP2 que utiliza 4 dígitos para las fracciones de segundo. (El tipo de datos DT_DBTIMESTAMP2 puede tener entre 0 y 7 dígitos especificados para las fracciones de segundo.)

(DT_DBTIMESTAMP2, 4) "1999-10-11 16:34:52.1234"

En este ejemplo se convierte un literal de cadena en el tipo de datos DT_DBTIMESTAMPOFFSET que utiliza 7 dígitos para las fracciones de segundo. (El tipo de datos DT_DBTIMESTAMPOFFSET puede tener entre 0 y 7 dígitos especificados para las fracciones de segundo.)

(DT_DBTIMESTAMPOFFSET, 7) "1999-10-11 16:34:52.1234567 + 5:35"