Conversão de tipos de dados implícitos em expressões

Uma conversão implícita de um tipo de dados ocorre quando o avaliador de expressão converte automaticamente os dados de um tipo de dados para outro. Por exemplo, se smallint é comparado com int, smallint é convertido implicitamente em int antes da execução da comparação.

O avaliador de expressão não pode executar conversão de dados implícita quando os argumentos e operandos tiverem tipos de dados incompatíveis. Além disso, o avaliador de expressão não pode converter nenhum valor implicitamente para um Booleano. Em vez disso, os argumentos e operandos devem ser convertidos explicitamente usando o operador cast. Para obter mais informações, consulte Cast (expressão SSIS): Converter tipos de dados SSIS.

O diagrama a seguir mostra o tipo de resultado de conversões implícitas de operações BINARY. A intersecção da coluna e da linha nesta tabela é o tipo de resultado de uma operação binário com operandos dos tipos à esquerda (De) e à direita (Para).

Conversão de tipos de dados implícitos entre tipos de dados

A intersecção de um inteiro assinado e não assinado é um inteiro assinado potencialmente maior do que o argumento.

Operadores comparam cadeias de caracteres, datas, Booleanos e outros tipos de dados. Antes de um operador comparar dois valores, o avaliador de expressão executa certas conversões implícitas. Para obter mais informações, consulte os seguintes tópicos:

Uma função que usa um único argumento retorna um resultado com o mesmo tipo de dados que o argumento, com as seguintes exceções:

  • DAY, MONTH e YEAR aceitam uma data e retornam um resultado inteiro (DT_I4).

  • ISNULL aceita uma expressão de qualquer tipo de dados SSIS e retorna um resultado Booleano (DT_BOOL).

  • SQUARE e SQRT aceitam uma expressão numérica e retornam um resultado numérico (DT_R8) não integral.

Se os argumentos tiverem o mesmo tipo de dados, o resultado será daquele tipo. A única exceção é o resultado de uma operação binária em dois valores com o tipo de dados DT_DECIMAL, que retorna um resultado com o tipo de dados DT_NUMERIC.

Recursos externos

Artigo técnico, SSIS Expression Cheat Sheet, em pragmaticworks.com