Синтаксис (службы 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).