CASTs Implícitos para Designação

Os valores podem ser designados a uma de três entidades.
Um campo de mensagem (ou equivalente em uma exceção ou lista de destino)
O suporte para conversão implícita entre os tipos de dados e a mensagem (em seu formato de fluxo de bits) depende do analisador apropriado. Por exemplo, o analisador XML lança tudo como cadeias de caracteres antes de inseri-las na mensagem do .
Um campo em uma tabela do banco de dados

O converte cada um de seus tipos de dados em um tipo de dados C SQL padrão adequado, conforme detalhado na tabela a seguir.A conversão entre este tipo de dados C SQL padrão e os tipos de dados suportados por cada DBMS depende do DBMS. Consulte a documentação do DBMS para obter detalhes adicionais.

A tabela a seguir lista as conversões disponíveis de para tipos de dados SQL

Tipo de dados Tipo de dados SQL
Valor NULL, ou desconhecido ou inválido SQL_NULL_DATA
BOOLEAN SQL_C_BIT
INTEGER SQL_C_LONG
FLOAT SQL_C_DOUBLE
DECIMAL SQL_C_CHAR1
CHARACTER SQL_C_CHAR
HORA SQL_C_TIME
GMTTIME SQL_C_TIME
DATE SQL_C_DATE
TIMESTAMP SQL_C_TIMESTAMP
GMTTIMESTAMP SQL_C_DATE
INTERVAL Não suportado2
BLOB SQL_C_BINARY
BIT Não suportado2
Notes:
  1. Por conveniência, os valores DECIMAL são transmitidos para o DBMS em formato de caractere.
  2. Não existe um tipo de dados C SQL padrão adequado para INTERVAL ou BIT. Lance-os para outro tipo de dados, como CHARACTER, se for necessário atribuí-los a um campo do banco de dados.
Uma variável escalar
Ao designar uma variável escalar, se o tipo de dados do valor que está sendo designado e o tipo de dados da variável de destino forem diferentes, será tentado um lançamento implícito com as mesmas restrições e comportamento especificados para a função CAST explícita. A única exceção é quando o tipo de dados da variável é INTERVAL ou DECIMAL.

Nestes casos, o valor que está sendo designado é o primeiro lançamento para um valor CHARACTER e é feita uma tentativa de lançar o valor CHARACTER em um INTERVAL ou DECIMAL. Isso por que INTERVAL requer um qualificador e DECIMAL requer uma precisão e escala. Eles devem ser especificados no lançamento explícito, mas devem ser obtidos da cadeia de caracteres durante o lançamento implícito. Portanto, uma restrição adicional é que, durante o lançamento implícito para uma variável INTERVAL, a cadeia de caracteres deve ter o formato INTERVAL '<values>' <qualifier>. O formato <values> abreviado que é aceitável para o lançamento explícito não é aceitável aqui.

Conceitos relacionados
ESQL

Tarefas relacionadas
Desenvolvendo ESQL

Referências relacionadas
Funções Complexas ESQL
Casts Implícitos
CASTs Implícitos para Comparações
CASTs implícitos para operações aritméticas