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).
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.
Consulte também