Синтаксис (службы SSIS)
Синтаксис выражений служб Integration Services похож на синтаксис языков C и C#. Выражения содержат элементы, такие как идентификаторы (столбцы и переменные), литералы, операторы и функции. В этом разделе обобщаются особые требования синтаксиса средства оценки выражений с точки зрения различных элементов выражений.
Образцы выражений, использующих специальные операторы и функции, см. в разделе о каждом операторе и функции: Операторы (выражение служб SSIS) и Строковые и другие функции (выражение служб SSIS).
Образцы выражений, использующих несколько операторов и функций так же, как идентификаторы и литералы, см. в разделе Расширенные выражения служб Integration Services.
Образец использования выражений свойств см. в разделе Использование выражений свойств в пакетах.
В некоторых случаях службы Integration Services накладывают ограничение на длину выражений в размере 4000 символов. Если результат вычисления выражения имеет тип данных служб Integration Services DT_WSTR или DT_STR, то выражение будет усечено до 4000 символов. При типе результата вложенного выражения DT_STR или DT_WSTR это вложенное выражение также будет усечено до 4000 знаков, независимо от общего типа результата выражения.
В зависимости от компонента служб Integration Services, в котором происходит усечение, усечения обрабатываются по-разному.
В преобразованиях, таких как «Производный столбец» и «Условное разбиение», усечение может корректно обрабатываться путем настройки преобразований, чтобы игнорировать усечения, или использовать выход ошибок, чтобы перенаправить усекаемые строки данных к другому выходу.
Во время выполнения усечение выражений, использовавшихся для установки значений выражений свойств, переменных и ограничений очередностью, является ошибкой и может вызвать сбой пакета.
Во время разработки усечение строкового литерала формирует предупреждение, если это происходит в канале передачи данных, и формирует ошибку, если это происходит во время выполнения.
Идентификаторы
Выражения могут содержать идентификаторы столбцов и переменных. Столбцы могут переноситься из источника данных или создаваться с помощью преобразований в потоке данных. Чтобы обращаться к столбцам, в выражениях могут быть использованы идентификаторы журнала обращений и преобразований. Идентификаторами журнала обращений и преобразований являются числа, уникальным образом идентифицирующие элементы пакета. Префиксы идентификаторов журнала обращений и преобразований, на которые ссылается выражение, должны содержать знак решетки (#). Например, на идентификатор журнала обращений и преобразований 138 ссылаются с помощью #138.
Выражения могут содержать системные переменные, которые предоставляют службы SSIS, а также пользовательские переменные. Префиксы переменных, на которые ссылается выражение, должны содержать знак @. Например, ссылкой на переменную Counter будет являться выражение @Counter. Символ @ не является частью имени переменной; он только указывает средству оценки выражений на то, что идентификатор является переменной. Дополнительные сведения см. в разделе Идентификаторы (службы SSIS).
Литералы
Выражения могут содержать числовые, строковые и логические литералы. Строковые литералы, использующиеся в выражениях, должны быть заключены в кавычки. Числовые и логические литералы не заключаются в кавычки. В языке выражений содержатся управляющие последовательности для часто используемых символов. Дополнительные сведения см. в разделе Литералы (службы SSIS).
Операторы
Средство оценки выражений предоставляет набор операторов, обеспечивающий функциональность, аналогичную набору операторов в таких языках, как Transact-SQL, C++ и C#. Однако язык выражений содержит дополнительные операторы и может использовать незнакомые символы. Дополнительные сведения см. в разделе Операторы (выражение служб SSIS).
Оператор разрешения пространства имен
Выражения используют оператор разрешения пространства имен (::), чтобы разрешать неоднозначность переменных, имеющих одинаковые имена. Оператор разрешения пространства имен позволяет определять переменную ее пространством имен, что делает возможным использование в пакете нескольких переменных с одинаковыми именами.
Оператор приведения
Оператор приведения преобразует результаты выражения, значения столбцов, значения переменных и константы из одного типа данных в другой. Оператор приведения языка выражений аналогичен оператору приведения языков C и C#. В языке Transact-SQL эту функциональность обеспечивают функции CAST и CONVERT. Синтаксис оператора приведения отличается от синтаксиса функций CAST и CONVERT следующим образом.
В качестве аргумента может использоваться выражение.
В его синтаксисе содержится ключевое слово CAST.
В его синтаксисе содержится ключевое слово AS.
Условный оператор
Условный оператор на основе оценки логического выражения возвращает одно из двух выражений. Условный оператор языка выражений аналогичен условному оператору языков C и C#. Аналогичная функциональность в многомерных выражениях (MDX) обеспечивается функцией IIF.
Логические операторы
В языке выражений поддерживается символ ! для логического оператора NOT. В языке Transact-SQL оператор ! встроен в набор операторов отношений. Например, в языке Transact-SQL содержатся операторы > и !>. Язык выражений SSIS не поддерживает комбинацию оператора ! с другими операторами. Например, не допускается объединение операторов ! и > в оператор !>. Однако языком выражений поддерживается встроенная комбинация символов !=, обозначающая неравенство.
Операторы равенства
Грамматика средства оценки выражений содержит оператор сравнения ==. Этот оператор аналогичен оператору = языка Transact-SQL и оператору == языка C#.
Функции
Язык выражений содержит функции даты и времени, математические и строковые функции, аналогичные функциям языка Transact-SQL и методам языка C#.
Некоторые функции имеют такие же имена, что и функции языка Transact-SQL, но их функциональность в средстве оценки выражений отличается.
В языке Transact-SQL функция ISNULL замещает значения NULL на указанные значения, тогда как в средстве оценки выражений функция ISNULL возвращает логическое значение в результате определения того, является ли NULL значением выражения.
В языке Transact-SQL функция ROUND содержит параметр усечения результирующего набора, тогда как аналогичная функция средства оценки выражений такого параметра не содержит.
Дополнительные сведения см. в разделе Строковые и другие функции (выражение служб SSIS).
Внешние ресурсы
Техническая статья Список выражений служб SSIS на сайте pragmaticworks.com
Техническая статья Примеры выражений служб SSIS на сайте social.technet.microsoft.com