Quando comparar um elemento com outro elemento, uma variável ou constante, você deve garantir que o valor com o qual está comparando o elemento seja consistente (por exemplo, caractere com caractere). Se os valores não forem consistentes, o intermediário gerará um erro de tempo de execução, se não puder fornecer um lançamento implícito para resolver a inconsistência. Para obter detalhes de quais lançamentos implícitos são suportados, consulte Casts Implícitos.
Você pode utilizar a função CAST para transformar o tipo de dados de um valor para corresponder ao tipo de dados de outro. Por exemplo, você pode utilizar a função CAST quando processar mensagens XML genéricas. Todos os campos em uma mensagem XML possuem valores de caracteres, portanto, se desejar executar cálculos aritméticos ou comparações de datetime, por exemplo, será necessário converter o valor da cadeia do campo em um valor do tipo apropriado utilizando CAST.
Na mensagem Invoice, o campo InvoiceDate contém a data da fatura. Se desejar consultar ou manipular este campo, primeiro será necessário efetuar CAST nele para o formato correto. Por exemplo, para consultar esse campo em um teste:
IF CAST(Body.Invoice.InvoiceDate AS DATE) = CURRENT_DATE THEN
Isso converte o valor da cadeia do campo InvoiceDate em um valor de data e compara-o à data atual.
Outro exemplo de lançamento de um inteiro para o caractere:
DECLARE I INTEGER 1; DECLARE C CHARACTER; -- The following statement generates an error SET C = I; -- The following statement is valid SET C = CAST(I AS CHARACTER);