Compartilhar via


Identificadores (SSIS)

Em expressões, identificadores são colunas e variáveis, que estão disponíveis para a operação. Expressões podem usar identificadores regulares e qualificados.

Identificadores regulares

Um identificador regular é um identificador que não precisa de nenhum qualificador adicional. Por exemplo, MiddleName, uma coluna na tabela Contatos do banco de dados AdventureWorks , é um identificador regular.

A nomeação de identificadores regulares deve seguir estas regras:

  • O primeiro caractere do nome deve ser uma letra como definido pelo Unicode Standard 2.0, ou um caractere de sublinhado (_).

  • Os caracteres subsequentes podem ser letras ou números conforme definido no Unicode Standard 2.0 e os caracteres (_), @, $ e # .

Importante

Espaços inseridos e caracteres especiais, diferentes daqueles listados, não são válidos em identificadores regulares. Para usar espaços e caracteres especiais, você deve usar um identificador qualificado em vez de um identificador regular.

Identificadores qualificados

Um identificador qualificado é um identificador que é delimitado por parênteses. Um identificador pode exigir um delimitador porque o nome do identificador inclui espaços ou porque o nome do identificador não começa com uma letra ou o caractere de sublinhado. Por exemplo, o nome da coluna Middle Name deve ser qualificado por colchetes e escrito desta forma [Middle Name] em uma expressão.

Se o nome do identificador incluir espaços ou se o nome não for um nome de identificador regular válido, o identificador deverá ser qualificado. O avaliador de expressão usa os colchetes de abertura e fechando ([]) para qualificar identificadores. Os colchetes são colocados na primeira e na última posição da cadeia de caracteres. Por exemplo, o identificador 5$> se torna [5$>]. Podem ser usados colchetes com nomes de coluna, nomes de variável e nomes de função.

Se você construir expressões que usam as caixas de diálogo Designer SSIS, identificadores regulares serão automaticamente colocados entre colchetes. Porém, os colchetes só serão exigidos se o nome incluir caracteres inválidos. Por exemplo, a coluna chamada MiddleName é válida sem colchetes.

Você não pode fazer referência a nomes de coluna que incluem colchetes em expressões. Por exemplo, o nome da coluna Column[1] não pode ser usado em uma expressão. Para usar a coluna em uma expressão, ela deve ser renomeada para a um nome sem colchetes.

identificadores de linhagem

Expressões podem usar identificadores de linhagem para fazer referência a colunas. Os identificadores de linhagem são atribuídos automaticamente quando você criar o pacote pela primeira vez. Você pode exibir o identificador de linhagem para uma coluna na guia Propriedades da Coluna da caixa de diálogo Editor Avançado no Designer SSIS.

Se você recorrer a uma coluna utilizando seu identificador de linhagem, o identificador deverá incluir o prefixo de caractere libra (#). Por exemplo, uma coluna com o identificador de linhagem 147 deve ser referenciado como #147.

Se uma expressão for analisada com sucesso, o avaliador de expressão substituirá os identificadores de linhagem por nomes de coluna na caixa de diálogo.

Nomes de coluna exclusivos

Vários componentes usados em um pacote podem expor colunas com o mesmo nome. Se estas colunas forem usadas em expressões, a ambiguidade delas deve ser resolvida antes que as expressões possam ser analisadas com sucesso. O avaliador de expressão aceita a notação pontilhada por identificar a fonte da coluna. Por exemplo, duas colunas chamadas Age se tornam FlatFileSource.Age e OLEDBSource.Ageque indicam que as fontes delas são FlatFileSource ou OLEDBSource. O analisador trata o nome totalmente qualificado como um único nome de coluna.

Nomes de componente de fonte e nomes de coluna estão separadamente qualificados. Os exemplos a seguir mostram o uso válido de colchetes em uma notação pontilhada:

  • O nome do componente de origem inclui espaços.

    [MySo urce].Age  
    
  • O primeiro caractere no nome de coluna não é válido.

    MySource.[#Age]  
    
  • Os nomes do componente de origem e da coluna contêm caracteres inválidos.

    [MySource?].[#Age]  
    

Importante

Se ambos os elementos na notação pontilhada estiverem entre colchetes, o avaliador de expressão interpretará o par como um único identificador, não como uma combinação origem-coluna.

Variáveis em expressões

Variáveis, quando referenciadas em expressões, devem incluir o prefixo @. Por exemplo, a variável Contador é referenciada usando @ Contador. O caractere @ não faz parte do nome de variável; só identifica a variável para o avaliador de expressão. Se você construir expressões utilizando as caixas de diálogo que o Designer SSIS fornece, o caractere @ será automaticamente adicionado ao nome da variável. Ele não é válido para incluir espaços entre o caractere @ e o nome de variável.

Nomes de variável seguem as mesmas regras que esses para outros identificadores regulares:

  • O primeiro caractere do nome deve ser uma letra como definido pelo Unicode Standard 2.0, ou um caractere de sublinhado (_).

  • Os caracteres subsequentes podem ser letras ou números conforme definido no Unicode Standard 2.0 e os caracteres (_), @, $ e # .

Se um nome de variável contiver caracteres diferente daqueles listados, a variável deverá ser colocada entre colchetes. Por exemplo, os nomes de variável com espaços devem ser colocados entre colchetes. O colchete de abertura segue o caractere @. Por exemplo, a variável My Name é referenciada como @ [My Name]. Ele não é válido para incluir espaços entre o nome de variável e os colchetes.

Observação

Os nomes das variáveis do sistema e das variáveis definidas pelo usuário diferenciam maiúsculas de minúsculas.

Nomes de variável exclusivos

O Integration Services aceita variáveis personalizadas e fornece um conjunto de variáveis de sistema. Por padrão, as variáveis personalizadas pertencem ao namespace User e as variáveis do sistema pertencem ao namespace System . Você pode criar namespaces adicionais para variáveis personalizadas e atualizar os nomes de namespace para se adequar às necessidades de seu aplicativo. O construtor de expressão lista variáveis em escopo em todos os namespaces.

Todas as variáveis têm escopo e pertencem a um namespace. Uma variável tem o escopo do pacote ou o escopo de um contêiner ou uma tarefa no pacote. O construtor de expressão no Designer SSIS lista só as variáveis em escopo. Para obter mais informações, confira Variáveis do SSIS (Integration Services) e Usar variáveis em pacotes.

Variáveis usadas em expressões devem ter nomes exclusivos para o avaliador de expressão avaliar a expressão corretamente. Se um pacote usar várias variáveis com o mesmo nome, seus namespaces deverão ser diferentes. O Integration Services fornece um operador de resolução de namespace, que consiste em dois dois-pontos (::), para qualificar uma variável com seu namespace. Por exemplo, a expressão a seguir usa duas variáveis denominadas Count; uma que pertence ao namespace User e uma que pertence ao namespace MyNamespace .

@[User::Count] > @[MyNamespace::Count]  

Importante

Você deve colocar entre colchetes a combinação de namespace e nome de variável qualificado para que o avaliador de expressão reconheça a variável.

Se o valor de Count no namespace User for 10 e o valor de Count em MyNamespace for 2, a expressão será avaliada true como porque o avaliador de expressão reconhecerá duas variáveis diferentes.

Se os nomes de variável não forem exclusivos, nenhum erro acontecerá. Em vez disso, o avaliador de expressão utiliza somente uma instância e retorna um resultado incorreto. Por exemplo, a expressão a seguir foi destinada a comparar os valores (10 e 2) para duas variáveis Count separadas false , mas a expressão é avaliada como porque o avaliador de expressão usa a mesma instância da variável Count duas vezes.

@Count > @Count  

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