Sintaxe (SSIS)
A sintaxe de expressão Integration Services é semelhante à sintaxe que as linguagens C e C# usam. Expressões incluem elementos como identificadores (colunas e variáveis), literais, operadores e funções. Este tópico resume os requisitos exclusivos da sintaxe do avaliador de expressão como eles se aplicam a diferentes elementos de expressão.
Para obter expressões de amostra que utilizam operadores e funções específicos, consulte o tópico sobre cada operador e função: Operadores (SSIS) e Funções (SSIS).
Para obter expressões de amostra que usam os vários operadores e funções como também identificadores e literais, consulte Expressões Integration Services avançadas.
Para obter expressões de amostra para usar em expressões de propriedade, consulte Usando expressões de propriedade em pacotes.
Em algumas casos, Integration Services impõe um limite de 4000 caracteres no comprimento de expressões. Se o resultado da avaliação de uma expressão tiver o tipo de dados DT_WSTR ou DT_STR do Integration Services, a expressão truncará em 4.000 caracteres. Se o tipo de resultado de uma subexpressão for DT_STR ou DT_WSTR, essa subexpressão será truncada em 4.000 caracteres, independentemente do tipo de resultado da expressão geral.
Dependendo do componente Integration Services no qual ocorre o truncamento, os truncamentos são controladas diferentemente.
Em transformações como Coluna Derivada e Divisão Condicional, o truncamento pode ser tratado normalmente, configurando as transformações para ignorar truncamentos ou utilizar uma saída de erro para redirecionar as linhas de dados que incorrem o truncamento para uma saída diferente.
No tempo de execução, o truncamento das expressões utilizadas para definir valores das expressões de propriedade, das variáveis e dos limites de precedência é um erro e pode causar uma falha no pacote.
No tempo de design, o truncamento de um literal de cadeia de caracteres gera uma aviso se ele ocorrer no pipeline, e gera um erro se ele ocorrer no tempo de execução.
Identificadores
Expressões podem incluir identificadores de coluna e variável. As colunas podem ter origem na fonte de dados ou podem ser criadas através de transformações no fluxo de dados. Expressões podem usar identificadores de linhagem para fazer referência a colunas. Identificadores de linhagem são números que identifique exclusivamente elementos de pacote. Identificadores de linhagem, referenciados em uma expressão, devem incluir um prefixo de libra (#). Por exemplo, o identificador de linhagem 138 é referenciado utilizando #138.
Expressões podem incluir as variáveis de sistema que o SSIS fornece e variáveis personalizadas. Variáveis, quando referenciadas em uma expressão, devem incluir o prefixo @. Por exemplo, a variável Counter é referenciada utilizando @ Counter. O caractere @ não faz parte do nome de variável; só indica para o avaliador de expressão que o identificador é uma variável. Para obter mais informações, consulte Identificadores (Expressões SSIS).
Literais
Expressões podem incluir literais numérico, de cadeia de caracteres e Booleanos. Literais de cadeia de caracteres utilizados em expressões devem ser colocados entre aspas. Literais numéricos e Booleanos não têm aspa. A linguagem de expressão inclui seqüências de escape para caracteres que freqüentemente escapam. Para obter mais informações, consulte Literais (SSIS).
Operadores
O avaliador de expressão fornece um conjunto de operadores que fornece funcionalidade semelhante ao conjunto de operadores em linguagens como Transact-SQL, C++ e C#. Porém, a linguagem de expressão inclui os operadores adicionais e usa símbolos diferentes daqueles com os quais pode estar familiarizado. Para obter mais informações, consulte Operadores (SSIS).
Operador de resolução de namespace
Expressões usam o operador de resolução de namespace (::) para resolver a ambigüidade de variáveis que têm o mesmo nome. Utilizando o operador de resolução de namespace, você pode qualificar a variável com seu namespace, que o possibilita utilizar diversas variáveis com o mesmo nome em um pacote.
Operador cast
O operador cast converte os resultados da expressão, os valores de coluna e de variáveis e as constantes de um tipo de dados para outro. O operador cast fornecido pela linguagem da expressão é semelhante àquela fornecida pelas linguagens C e C#. Em Transact-SQL, as funções CAST e CONVERT fornecem essa funcionalidade. A sintaxe do operador cast é diferente daquelas usadas por CAST e CONVERT dos modos seguintes:
Ele pode usar uma expressão como um argumento.
Sua sintaxe não inclui a palavra-chave CAST.
Sua sintaxe não inclui a palavra-chave AS.
Operador condicional
O operador condicional retorna uma de duas expressões, com base na avaliação de uma expressão Booleana. O operador condicional fornecido pela linguagem da expressão é semelhante àquele fornecida pelas linguagens C e C#. Em expressões multidimensionais (MDX), a função IIF fornece funcionalidade semelhante.
Operadores lógicos
A linguagem de expressão dá suporte ao caractere ! para o operador lógico NOT. No Transact-SQL, o operador ! é criado no conjunto de operadores relacionais. Por exemplo, Transact-SQL fornece os operadores > e !> . A linguagem de expressão SSIS não aceita a combinação do operador ! e outros operadores. Por exemplo, não é válido a associação de ! e > em !>. Entretanto, a linguagem de expressão dá suporte a uma combinação incorporada de caracteres != para a comparação não-igual-a.
Operadores de igualdade
A gramática do avaliador de expressão fornece o operador de igualdade == . Este operador é o equivalente ao operador = em Transact-SQL e ao operador == em C#.
Funções
A linguagem de expressão inclui funções de data e hora, funções matemáticas e de cadeia de caracteres que são semelhantes às funções Transact-SQL e aos métodos C#.
Algumas funções têm os mesmos nomes que as funções do Transact-SQL, mas têm funcionalidade um pouco diferente no avaliador de expressão.
Em Transact-SQL, a função ISNULL substitui os valores nulo pelo um valor especificado, embora a função ISNULL do avaliador de expressão retorne um Booleano com base em uma expressão nula ou não.
Em Transact-SQL, a função ROUND inclui uma opção para truncar o conjunto de resultados, embora a função ROUND do avaliador de expressão não inclua.
Para obter mais informações, consulte Funções (SSIS).