Transformaciones soportadas

Este tema contiene una lista de las transformaciones CAST soportadas entre combinaciones de tipos de datos.

No se da soporte a una transformación CAST entre todas las combinaciones posibles de tipos de datos. Las que están soportadas se indican a continuación, junto con el efecto de la transformación CAST.

Tipo de datos de origen Tipo de datos de destino Efecto
BIT BIT El resultado es el mismo que la entrada.
BIT BLOB La matriz de bits se convierte a una matriz de bytes con un máximo de 263 elementos. Se notificará un error si el origen no tiene la longitud adecuada para producir un BLOB (o sea, un múltiplo de 8).
BIT CHARACTER El resultado es una serie que se ajusta a la definición de un literal de serie de bits cuyo valor interpretado es el mismo que el valor de origen. La serie resultante tiene el formato B'bbbbbb' (donde b e 0 ó 1).

Si especifica una cláusula CCSID o ENCODING, se supone que la matriz de bits se compone de caracteres en el CCSID y codificación especificados, y se convierte la página de códigos al valor de retorno de caracteres.

Si sólo especifica un CCSID, se supone una codificación big endian.

Si sólo especifica una codificación, se supone un CCSID de 1208.

Esta función notifica errores de conversión si la página de códigos o la codificación son desconocidas, los datos suministrados no son un número integral de caracteres de la página de códigos, o los datos contienen caracteres que no son válidos en la página de códigos dada.

BIT INTEGER La matriz de bits tiene un máximo de 263 elementos y se convierte a un entero. Se notificará un error si el origen no tiene la longitud correcta que coincida con un entero.
BLOB BIT La matriz de bytes dada se convierte a una matriz de bits con un máximo de 263 elementos.
BLOB BLOB El resultado es el mismo que la entrada.
BLOB CHARACTER El resultado es una serie que se ajusta a la definición de un literal de serie binario cuyo valor interpretado es el mismo que el valor de origen. La serie resultante tiene el formato X'hhhh' (donde h es cualquier carácter hexadecimal).

Si especifica una cláusula CCSID o ENCODING, se supone que la matriz de bytes se compone de caracteres en el CCSID y codificación especificados, y se convierte la página de códigos al valor de retorno de caracteres.

Si sólo especifica un CCSID, se supone una codificación big endian.

Si sólo especifica una codificación, se supone un CCSID de 1208.

Esta función notifica errores de conversión si la página de códigos o la codificación son desconocidas, los datos suministrados no son un número integral de caracteres de la página de códigos, o los datos contienen caracteres que no son válidos en la página de códigos dada.

BLOB INTEGER La matriz de bytes tiene un máximo de 263 elementos y se convierte a un entero. Se notificará un error si el origen no tiene la longitud correcta para que coincida con un entero.
BOOLEAN BOOLEAN El resultado es el mismo que la entrada.
BOOLEAN CHARACTER Si el valor de origen es TRUE, el resultado es la serie de caracteres TRUE. Si el valor de origen es FALSE, el resultado es la serie de caracteres FALSE. Dado que el valor booleano UNKNOWN es el mismo que el valor NULL para booleanos, el resultado es el valor de serie de caracteres NULL si el valor de origen es UNKNOWN.
CHARACTER BIT La serie de caracteres debe ajustarse a las normas de un literales de serie de bits o al contenido del literal de serie de bits. Es decir, la serie de caracteres puede tener el formato B'bbbbbbb' o bbbbbb (donde b' puede ser 0 ó 1).

Si especifica una cláusula CCSID o ENCODING, la serie de caracteres se convierte al CCSID y la codificación especificados y se colocará, sin conversiones adicionales, en el valor de retorno de matriz de bits.

Si sólo especifica un CCSID, se supone una codificación big endian.

Si sólo especifica una codificación, se supone un CCSID de 1208.

Esta función notifica errores de conversión si la página de códigos o la codificación son desconocidas o los datos contienen caracteres Unicode que no se pueden convertir a la página de códigos dada.

CHARACTER BLOB La serie de caracteres debe ajustarse a las normas de un literal de serie binaria o al contenido del literal de serie binaria. Es decir, la serie de caracteres puede tener el formato X'hhhhhh' o hhhhhh (donde h puede ser cualquier carácter hexadecimal).

Si especifica una cláusula CCSID o ENCODING, la serie de caracteres se convierte al CCSID y la codificación especificados y se colocará, sin conversiones adicionales, en el valor de retorno de matriz de bytes.

Si sólo especifica un CCSID, se supone una codificación big endian.

Si sólo especifica una codificación, se supone un CCSID de 1208.

Esta función notifica errores de conversión si la página de códigos o la codificación son desconocidas o los datos contienen caracteres Unicode que no se pueden convertir a la página de códigos dada.

CHARACTER BOOLEAN La serie de caracteres se interpreta de la misma manera que un literal booleano. Es decir, la serie de caracteres debe ser una de las series siguientes: TRUE, FALSE o UNKNOWN (en cualquier combinación de mayúsculas y minúsculas).
CHARACTER CHARACTER El resultado es el mismo que la entrada.
CHARACTER DATE La serie de caracteres debe ajustarse a las normas de un literal de fecha o una serie de fecha. Es decir, la serie de caracteres puede ser DATE '2002-10-05' o 2002-10-05.
CHARACTER DECIMAL La serie de caracteres se interpreta de la misma manera que el literal numérico exacto para formar un resultado decimal temporal con una escala y precisión definidas por el formato de la serie. Ésta se convierte a un decimal de la precisión y escala especificadas, y se genera un error de ejecución si la conversión produce una pérdida de dígitos significativos.

Si no especifica la precisión y la escala, la precisión y la escala del resultado serán las mínimas necesarias para contener el valor proporcionado.

CHARACTER FLOAT La serie de caracteres se interpreta de la misma manera que un literal de coma flotante.
CHARACTER GMTTIME La serie de caracteres debe ajustarse a las normas de un literal de hora GMT o de la serie de hora. Es decir, la serie de caracteres puede ser GMTTIME '09:24:15' o 09:24:15.
CHARACTER GMTTIMESTAMP La serie de caracteres debe ajustarse a las normas de un literal de indicación horaria GMT o de la serie de indicación horaria. Es decir, la serie de caracteres puede ser GMTTIMESTAMP '2002-10-05 09:24:15' o 2002-10-05 09:24:15.
CHARACTER INTEGER La serie de caracteres se interpreta de la misma manera que un literal entero.
CHARACTER INTERVAL La serie de caracteres debe ajustarse a las normas de un literal de intervalo con el mismo calificador de intervalo que el indicado en la especificación de CAST, o debe ajustarse a las normas de serie de intervalo que se apliquen al calificador de intervalo indicado.
CHARACTER TIME La serie de caracteres debe ajustarse a las normas de un literal de hora o de la serie de hora. Es decir, la serie de caracteres puede ser TIME '09:24:15' o 09:24:15.
CHARACTER TIMESTAMP La serie de caracteres debe ajustarse a las normas de un literal de indicación horaria o de la serie de indicación horaria. Es decir, la serie de caracteres puede ser TIMESTAMP '2002-10-05 09:24:15' o 2002-10-05 09:24:15.
DATE CHARACTER El resultado es una serie que se ajusta a la definición de un literal de fecha cuyo valor interpretado es el mismo que el valor de fecha de origen.
Por ejemplo:
CAST(DATE '2002-10-05' AS CHAR)
devuelve
DATE '2002-10-05'
DATE DATE El resultado es el mismo que la entrada.
DECIMAL CHARACTER El resultado es la serie de caracteres más corta que se ajuste a la definición de un literal numérico exacto y cuyo valor interpretado sea el valor del decimal.
DECIMAL DECIMAL

El valor se convierte a la precisión y escala especificadas, y se genera un error de ejecución si la conversión produce una pérdida de dígitos significativos. Si no especifica la precisión y la escala, el valor, la precisión y la escala se conservarán; es un NOOP (sin operación).

DECIMAL FLOAT El número se convierte, con redondeo si es necesario.
DECIMAL INTEGER

El valor se redondea y se convierte a un entero, y se genera un error de ejecución si la conversión produce una pérdida de dígitos significativos.

DECIMAL INTERVAL Si el calificador de intervalo indicado sólo tiene un campo, el resultado es un intervalo con ese calificador con el campo igual al valor del numérico exacto. De lo contrario, no se generará ningún error de ejecución.
FLOAT CHARACTER El resultado es la serie de caracteres más corta que se ajuste a la definición de un literal numérico aproximado y cuya mantisa consta de un único dígito distinto de 0, seguido de un punto y un entero sin signo, y cuyo valor interpretado es el valor flotante.
FLOAT FLOAT El resultado es el mismo que la entrada.
FLOAT DECIMAL

El valor se redondea y se convierte a un decimal de la precisión y escala especificadas, y se genera un error de ejecución si la conversión produce una pérdida de dígitos significativos. Si no especifica la precisión y la escala, la precisión y la escala del resultado serán las mínimas necesarias para contener el valor proporcionado.

FLOAT INTEGER

El valor se redondea y se convierte a un entero, y se genera un error de ejecución si la conversión produce una pérdida de dígitos significativos.

GMTTIME CHARACTER El resultado es una serie que se ajusta a la definición de un literal GMTTIME cuyo valor interpretado es el mismo que el valor de origen. La serie resultante tiene el formato GMTTIME 'hh:mm:ss'.
GMTTIME

GMTTIME

El resultado es el mismo que la entrada.
GMTTIME TIME El valor resultante es el valor de origen más el desplazamiento de huso horario local (según el valor devuelto por LOCAL_TIMEZONE). El campo de horas se calcula en formato 24 horas.
GMTTIMESTAMP CHARACTER El resultado es una serie que se ajusta a la definición de un literal GMTTIMESTAMP cuyo valor interpretado es el mismo que el valor de origen. La serie resultante tiene el formato GMTTIMESTAMP 'aaaa-mm-dd hh:mm:ss'.
GMTTIMESTAMP GMTTIMESTAMP El resultado es el mismo que la entrada.
GMTTIMESTAMP TIMESTAMP El valor resultante es el valor de origen más el desplazamiento de huso horario local (según el valor devuelto por LOCAL_TIMEZONE).
INTEGER BIT El entero dado se convierte a una matriz de bits con un máximo de 263 elementos.
INTEGER BLOB El entero dado se convierte a una matriz de bytes con un máximo de 263 elementos.
INTEGER CHARACTER El resultado es la serie de caracteres más corta que se ajuste a la definición de un literal numérico exacto y cuyo valor interpretado sea el valor del entero.
INTEGER FLOAT El número se convierte, con redondeo si es necesario.
INTEGER INTEGER El resultado es el mismo que la entrada.
INTEGER DECIMAL

El valor se convierte a un decimal de la precisión y escala especificadas, y se genera un error de ejecución si la conversión produce una pérdida de dígitos significativos. Si no especifica la precisión y la escala, la precisión y la escala del resultado serán las mínimas necesarias para contener el valor proporcionado.

INTEGER INTERVAL Si el calificador de intervalo indicado sólo tiene un campo, el resultado es un intervalo con ese calificador con el campo igual al valor del numérico exacto. De lo contrario, no se generará ningún error de ejecución.
INTERVAL CHARACTER El resultado es una serie que se ajusta a la definición de un literal INTERVAL, cuyo valor interpretado es el mismo que el valor de intervalo de origen.
Por ejemplo:
CAST(INTERVAL '4' YEARS AS CHAR)
devuelve
INTERVAL '4' YEARS
INTERVAL DECIMAL

Si el valor de intervalo tiene un calificador que sólo tiene un campo, el resultado es un decimal de la precisión y escala especificadas con ese valor, y se genera un error de ejecución si la conversión produce una pérdida de dígitos significativos. Si el intervalo tiene un calificador con más de un campo como, por ejemplo, YEAR TO MONTH, se genera un error de ejecución. Si no especifica la precisión y la escala, la precisión y la escala del resultado serán las mínimas necesarias para contener el valor proporcionado.

INTERVAL INTEGER

Si el valor de intervalo tiene un calificador que sólo tiene un campo, el resultado es un entero con ese valor. Si el intervalo tiene un calificador con más de un campo como, por ejemplo, YEAR TO MONTH, se genera un error de ejecución.

INTERVAL INTERVAL El resultado es el mismo que la entrada.

Los intervalos de año-mes sólo se pueden convertir a intervalos de año-mes, y los intervalos de día-segundo sólo a intervalos de día-segundo. El intervalo de origen se convierte a un escalar en unidades del campo menos significativo del calificador de intervalo de destino. Este valor se normaliza en un intervalo con el calificador de intervalo de destino. Por ejemplo, para convertir un intervalo que tiene el calificador MINUTE TO SECOND a un intervalo con el calificador DAY TO HOUR, el valor de origen se convierte a un escalar en unidades de horas y este valor se normaliza en un intervalo con el calificador DAY TO HOUR.

TIME CHARACTER El resultado es una serie que se ajusta a la definición de un literal TIME, cuyo valor interpretado es el mismo que el valor de hora de origen.
Por ejemplo:
CAST(TIME '09:24:15' AS CHAR)
devuelve
TIME '09:24:15'
TIME GMTTIME El valor de resultado es el valor de origen menos el desplazamiento de huso horario local (según el valor devuelto por LOCAL_TIMEZONE). El campo de horas se calcula en formato 24 horas.
TIME TIME El resultado es el mismo que la entrada.
TIME TIMESTAMP El resultado es un valor cuyos campos de fecha se toman de la fecha actual y cuyos campos de hora se toman del valor de hora de origen.
TIMESTAMP CHARACTER El resultado es una serie que se ajusta a la definición de un literal TIMESTAMP, cuyo valor interpretado es el mismo que el valor de indicación horaria de origen.
Por ejemplo:
CAST(TIMESTAMP '2002-10-05 09:24:15' AS CHAR)
devuelve
TIMESTAMP '2002-10-05 09:24:15'
TIMESTAMP DATE El resultado es un valor cuyos campos se componen de los campos de fecha del valor de indicación horaria de origen.
TIMESTAMP GMTTIMESTAMP El valor resultante es el valor de origen menos el desplazamiento de huso horario local (según el valor devuelto por LOCAL_TIMEZONE).
TIMESTAMP TIME El resultado es un valor cuyos campos se componen de los campos de hora del valor de indicación horaria de origen.
TIMESTAMP TIMESTAMP El resultado es el mismo que la entrada.

Consulte el apartado Tipos de datos ESQL para obtener información sobre precisión, escala y calificador de intervalo.

Conceptos relacionados
ESQL
Tipos de datos ESQL

Tareas relacionadas
Desarrollo de ESQL

Referencia relacionada
Funciones ESQL complejas
Función CAST
Especificación CAST
Transformaciones CAST implícitas
Tipos de datos de valores de fuentes externas