Este tópico lista os CASTs suportados entre as combinações de tipos de dados.
Um CAST não é suportado entre cada combinação de tipos de dados. Os que são suportados estão relacionados abaixo, junto com o efeito do CAST.
Tipo de dados de origem | Tipo de dados de destino | Efeito |
---|---|---|
BIT | BIT | O resultado é igual à entrada. |
BIT | BLOB | A matriz de bits é convertida em uma matriz de bytes com um máximo de 263 elementos. Um erro é relatado se a origem não tiver um comprimento adequado para produzir um BLOB (ou seja, um múltiplo de 8). |
BIT | CHARACTER | O resultado é uma cadeia que se adequa à definição
de um literal de cadeia de bits cujo valor interpretado é o mesmo que o valor de
origem. A cadeia resultante possui o formato B'bbbbbb' (em que b é 0
ou 1). Se uma cláusula CCSID ou ENCODING for especificada, a matriz de bits dada é considerada como sendo caracteres no CCSID e codificação especificados e é a página de códigos convertida no valor de retorno de caractere. Se apenas um CCSID for especificado, a codificação big endian é assumida. Se somente uma codificação for especificada, um CCSID de 1208 é considerado. Essa função poderá relatar erros de conversão se a página de códigos ou a codificação forem desconhecidas, os dados fornecidos não forem um número integral de caracteres da página de códigos ou os dados contiverem caracteres que não sejam válidos na página de códigos determinada. |
BIT | INTEGER | A matriz de bits tem um máximo de 263 elementos e é convertida em um inteiro.Um erro é relatado se a origem não tiver o comprimento adequado para produzir um inteiro. |
BLOB | BIT | A matriz de bytes dada é convertida em uma matriz de bits com um máximo de 263 elementos. |
BLOB | BLOB | O resultado é igual à entrada. |
BLOB | CHARACTER | O resultado é uma cadeia que se adequa à definição
de um literal de cadeia binária cujo valor interpretado é o mesmo que o valor de
origem. A cadeia resultante possui o formato X'hhhh' (em que
h é qualquer caractere hexadecimal). Se uma cláusula CCSID ou ENCODING for especificada, a matriz de bytes é considerada como sendo caracteres no CCSID e codificação especificados e é a página de códigos convertida no valor de retorno de caractere. Se apenas um CCSID for especificado, a codificação big endian é assumida. Se somente uma codificação for especificada, um CCSID de 1208 é considerado. Essa função poderá relatar erros de conversão se a página de códigos ou a codificação forem desconhecidas, os dados fornecidos não forem um número integral de caracteres da página de códigos ou os dados contiverem caracteres que não sejam válidos na página de códigos determinada. |
BLOB | INTEGER | A matriz de bytes tem um máximo de 263 elementos e é convertida em um inteiro.Um erro é relatado se a origem não tiver o comprimento correto para corresponder a um inteiro. |
BOOLEAN | BOOLEAN | O resultado é igual à entrada. |
BOOLEAN | CHARACTER | Se o valor de origem for TRUE, o resultado será a cadeia de caracteres TRUE. Se o valor de origem for FALSE, o resultado será a cadeia de caracteres FALSE. Pelo fato de o valor booleano UNKNOWN ser o mesmo que o valor NULL para booleanos, o resultado é o valor da cadeia de caracteres NULL se o valor de origem for UNKNOWN. |
CHARACTER | BIT | A cadeia de caracteres deve adequar-se às
regras para um literal de cadeia de bits ou ao conteúdo do literal de
cadeia de bits. Ou seja, a cadeia de caracteres deve ser do formato
B'bbbbbbb ou bbbbbb (em que b' pode ser 0 ou 1). Se uma cláusula CCSID ou ENCODING for especificada, a cadeia de caracteres é convertida no CCSID e na codificação especificados e colocada sem outra conversão no valor de retorno da matriz de bits. Se apenas um CCSID for especificado, a codificação big endian é assumida. Se somente uma codificação for especificada, um CCSID de 1208 é considerado. Essa função poderá relatar erros de conversão se a página de códigos ou a codificação forem desconhecidas ou os dados fornecidos contiverem caracteres Unicode que não podem ser convertidos na página de códigos determinada. |
CHARACTER | BLOB | A cadeia de caracteres deve adequar-se às
regras para um literal de cadeia binária ou ao conteúdo do literal de
cadeia binária. Ou seja, a cadeia de caracteres pode ser da forma
X'hhhhhh' ou hhhhhh (em que h pode ser qualquer caractere
hexadecimal). Se uma cláusula CCSID ou ENCODING for especificada, a cadeia de caracteres é convertida no CCSID e na codificação especificados e colocada sem outra conversão no valor de retorno da matriz de bytes. Se apenas um CCSID for especificado, a codificação big endian é assumida. Se somente uma codificação for especificada, um CCSID de 1208 é considerado. Essa função poderá relatar erros de conversão se a página de códigos ou a codificação forem desconhecidas ou os dados fornecidos contiverem caracteres Unicode que não podem ser convertidos na página de códigos determinada. |
CHARACTER | BOOLEAN | A cadeia de caracteres é interpretada da mesma maneira que um literal booleano. Ou seja, a cadeia de caracteres deve ser uma das cadeias TRUE, FALSE ou UNKNOWN (em qualquer combinação de casos). |
CHARACTER | CHARACTER | O resultado é igual à entrada. |
CHARACTER | DATE | A cadeia de caracteres deve adequar-se às regras para um literal de data ou a cadeia de data. Ou seja, a cadeia de caracteres pode ser DATE '2002-10-05' ou 2002-10-05. |
CHARACTER | DECIMAL | A cadeia de caracteres é interpretada da mesma
maneira que um literal numérico exato para formar um resultado
decimal temporário com uma escala e precisão definidas pelo formato
da cadeia. Isso é convertido em um decimal de precisão e escala
especificadas, com um erro em tempo de execução sendo gerado se a
conversão resultar na perda de dígitos significantes. Se a precisão e a escala não estiverem especificadas, a precisão e a escala do resultado são o mínimo necessário para conter o valor dado. |
CHARACTER | FLOAT | A cadeia de caracteres é interpretada da mesma maneira que o literal ponto flutuante. |
CHARACTER | GMTTIME | A cadeia de caracteres deve adequar-se às regras para um literal de hora GMT ou a cadeia de hora. Ou seja, a cadeia de caracteres pode ser GMTTIME '09:24:15' ou 09:24:15. |
CHARACTER | GMTTIMESTAMP | A cadeia de caracteres deve adequar-se às regras para um literal de data e hora GMT ou a cadeia de data e hora. Ou seja, a cadeia de caracteres pode ser GMTTIMESTAMP '2002-10-05 09:24:15' ou 2002-10-05 09:24:15. |
CHARACTER | INTEGER | A cadeia de caracteres é interpretada da mesma maneira que um literal inteiro. |
CHARACTER | INTERVAL | A cadeia de caracteres deve adequar-se às regras para um literal de intervalo com o mesmo qualificador de intervalo especificado na especificação CAST ou deve adequar-se às regras para uma cadeia de intervalo que aplicam-se ao qualificador de intervalo especificado. |
CHARACTER | HORA | A cadeia de caracteres deve adequar-se às regras para um literal de hora ou para a cadeia de hora. Ou seja, a cadeia de caracteres pode ser TIME '09:24:15' ou 09:24:15. |
CHARACTER | TIMESTAMP | A cadeia de caracteres deve adequar-se às regras para um literal de data e hora ou para a cadeia de data e hora. Ou seja, a cadeia de caracteres pode ser TIMESTAMP '2002-10-05 09:24:15' ou 2002-10-05 09:24:15. |
DATE | CHARACTER | O resultado é uma cadeia que se adequa à definição
de um literal de data, cujo valor interpretado é o mesmo que o valor da data de
origem. Por exemplo:
CAST(DATE '2002-10-05' AS CHAR)retorna DATE '2002-10-05' |
DATE | DATE | O resultado é igual à entrada. |
DECIMAL | CHARACTER | O resultado é a cadeia de caracteres mais curta que se adequa à definição de um literal numérico exato e cujo valor interpretado é o valor da decimal. |
DECIMAL | DECIMAL | O valor é convertido à precisão e escala especificadas, com um erro em tempo de execução sendo gerado se a conversão resultar na perda de dígitos significantes. Se a precisão e a escala não forem especificadas, o valor, a precisão e a escala são preservados; ou seja, é um NOOP (sem operação). |
DECIMAL | FLOAT | O número é convertido, sem arredondamento se necessário. |
DECIMAL | INTEGER | O valor é arredondado e convertido em um inteiro, com um erro em tempo de execução sendo gerado se a conversão resultar na perda de dígitos significantes. |
DECIMAL | INTERVAL | Se o qualificador de intervalo especificado tiver somente um campo, o resultado é um intervalo com esse qualificador com o campo igual ao valor do numérico exato. Caso contrário, um erro em tempo de execução é gerado. |
FLOAT | CHARACTER | O resultado é a cadeia de caracteres mais curta que se adequa à definição de um literal numérico aproximado e cuja mantissa consiste em um dígito único que não é 0, seguido por um ponto e um inteiro não assinado, cujo valor interpretado é o valor da flutuação. |
FLOAT | FLOAT | O resultado é igual à entrada. |
FLOAT | DECIMAL | O valor é arredondado e convertido em um decimal de precisão e escala especificadas, com um erro em tempo de execução sendo gerado se a conversão resultar na perda de dígitos significantes. Se a precisão e a escala não estiverem especificadas, a precisão e a escala do resultado são o mínimo necessário para conter o valor dado. |
FLOAT | INTEGER | O valor é arredondado e convertido em um inteiro, com um erro em tempo de execução sendo gerado se a conversão resultar na perda de dígitos significantes. |
GMTTIME | CHARACTER | O resultado é uma cadeia que se adequa à definição de um literal GMTTIME cujo valor interpretado é o mesmo que o valor de origem. A cadeia resultante possui o formato GMTTIME 'hh:mm:ss'. |
GMTTIME | GMTTIME |
O resultado é igual à entrada. |
GMTTIME | HORA | O valor resultante é o valor de origem mais o deslocamento do fuso horário local (como retornado por LOCAL_TIMEZONE). O campo de horas é modulo 24 calculado. |
GMTTIMESTAMP | CHARACTER | O resultado é uma cadeia que se adequa à definição de um literal GMTTIMESTAMP cujo valor interpretado é o mesmo que o valor de origem. A cadeia resultante possui o formato GMTTIMESTAMP 'yyyy-mm-dd hh:mm:ss'. |
GMTTIMESTAMP | GMTTIMESTAMP | O resultado é igual à entrada. |
GMTTIMESTAMP | TIMESTAMP | O valor resultante é o valor de origem mais o deslocamento do fuso horário local (como retornado por LOCAL_TIMEZONE). |
INTEGER | BIT | O inteiro dado é convertido em uma matriz de bits com um máximo de 263 elementos. |
INTEGER | BLOB | O inteiro dado é convertido em uma matriz de bytes com um máximo de 263 elementos. |
INTEGER | CHARACTER | O resultado é a cadeia de caracteres mais curta que se adequa à definição de um literal numérico exato e cujo valor interpretado é o valor do inteiro. |
INTEGER | FLOAT | O número é convertido, sem arredondamento se necessário. |
INTEGER | INTEGER | O resultado é igual à entrada. |
INTEGER | DECIMAL | O valor é convertido em um decimal de precisão e escala especificadas, com um erro em tempo de execução sendo gerado se a conversão resultar na perda de dígitos significantes. Se a precisão e a escala não estiverem especificadas, a precisão e a escala do resultado são o mínimo necessário para conter o valor dado. |
INTEGER | INTERVAL | Se o qualificador de intervalo especificado tiver somente um campo, o resultado é um intervalo com esse qualificador com o campo igual ao valor do numérico exato. Caso contrário, um erro em tempo de execução é gerado. |
INTERVAL | CHARACTER | TO resultado é uma cadeia que se adequa à definição
de um literal INTERVAL literal, cujo valor interpretado é o mesmo que o valor
do intervalo de origem. Por exemplo:
CAST(INTERVAL '4' YEARS AS CHAR)retorna INTERVAL '4' YEARS |
INTERVAL | DECIMAL | Se o valor de intervalo tiver um qualificador que tenha somente um campo, o resultado é um decimal de precisão e escala especificadas com esse valor, com um erro em tempo de execução sendo gerado se a conversão resultar na perda de dígitos significantes. Se o intervalado tiver um qualificador com mais de um campo, como YEAR TO MONTH, um erro em tempo de execução é gerado. Se a precisão e a escala não estiverem especificadas, a precisão e a escala do resultado são o mínimo necessário para conter o valor dado. |
INTERVAL | INTEGER | Se o valor de intervalo tiver um qualificador que tenha somente um campo, o resultado é um inteiro com esse valor. Se o intervalado tiver um qualificador com mais de um campo, como YEAR TO MONTH, um erro em tempo de execução é gerado. |
INTERVAL | INTERVAL | O resultado é igual à entrada. Os intervalos de ano-mês podem ser convertidos somente em intervalos de ano-mês e intervalos de dia-segundo somente em intervalos de dia-segundo. O intervalo de origem é convertido em um escalar em unidades do campo menos significantes do qualificador de intervalo de destino. Esse valor é normalizado em um intervalo com o qualificador de intervalo de destino. Por exemplo, para converter um intervalo que tenha o qualificador MINUTE TO SECOND em um intervalo com o qualificador DAY TO HOUR, o valor de origem é convertido em um escalar em unidades de horas e esse valor é normalizado em um intervalo com o qualificador DAY TO HOUR. |
HORA | CHARACTER | O resultado é uma cadeia que se adequa à definição de
um literal TIME, cujo valor interpretado é o mesmo que o valor da hora de origem. Por exemplo:
CAST(TIME '09:24:15' AS CHAR)retorna TIME '09:24:15' |
HORA | GMTTIME | O valor do resultado é o valor de origem menos o deslocamento do fuso horário local (como retornado por LOCAL_TIMEZONE). O campo de horas é modulo 24 calculado. |
TIME | TIME | O resultado é igual à entrada. |
HORA | TIMESTAMP | O resultado é um valor cujos campos de data são tirados da data atual e cujos campos de hora são tirados do valor de hora de origem. |
TIMESTAMP | CHARACTER | O resultado é uma cadeia que se adequa à definição
de um literal TIMESTAMP, cujo valor interpretado é o mesmo que o valor de
data e hora de origem. Por exemplo:
CAST(TIMESTAMP '2002-10-05 09:24:15' AS CHAR)retorna TIMESTAMP '2002-10-05 09:24:15' |
TIMESTAMP | DATE | O resultado é um valor cujos campos consistem nos campos de data do valor de data e hora de origem. |
TIMESTAMP | GMTTIMESTAMP | O valor resultante é o valor de origem menos o deslocamento do fuso horário local (como retornado por LOCAL_TIMEZONE). |
TIMESTAMP | HORA | O resultado é um valor cujos campos consistem nos campos de hora do valor de data e hora de origem. |
TIMESTAMP | TIMESTAMP | O resultado é igual à entrada. |
Consulte Tipos de Dados ESQL para obter informações sobre precisão, escala e qualificador de intervalo.
Conceitos relacionados
ESQL
Tipos de Dados ESQL
Tarefas relacionadas
Desenvolvendo ESQL
Referências relacionadas
Funções Complexas ESQL
Função CAST
Especificação CAST
Casts Implícitos
Tipos de Dados de Valores de Origens Externas
Avisos |
Marcas |
Downloads |
Biblioteca |
Suporte |
Feedback
![]() ![]() |
ak05680_ |