Литералы (службы SSIS)

Выражения могут содержать числовые, строковые и логические литералы. Средство оценки выражений поддерживает различные числовые литералы, такие как целые числа, десятичные дроби и константы с плавающей точкой. Средство оценки выражений также поддерживает суффиксы для длинных чисел и чисел с плавающей точкой, указывающие, как механизм вычисления выражений обрабатывает значения, а также экспоненциальное представление чисел в числовых литералах.

Строковые литералы должны заключаться в кавычки. Язык выражений предоставляет набор управляющих последовательностей для символов, которые должны использоваться с управляющей последовательностью, например непечатаемые символы и кавычки.

Средство оценки выражений поддерживает логические литералы True и False. В языке выражений регистр не учитывается, так что допустимо любое сочетание букв верхнего и нижнего регистра.

Числовые литералы

Средство оценки выражений поддерживает целочисленные и нецелочисленные типы числовых данных. Также оно поддерживает идентификаторы журнала обращений и преобразований, являющиеся уникальными числовыми идентификаторами элементов пакета. Идентификаторы журнала обращений и преобразований — числа, но они не могут использоваться в математических операциях.

Средство оценки выражений поддерживает суффиксы, которые указывают, как механизм вычисления выражений использует числовые литералы. Например, можно указать, что целое число 37 должно рассматриваться как тип длинных целочисленных данных, написав 37L или 37l.

Следующая таблица содержит перечень суффиксов для числовых литералов.

Суффикс

Описание

L или l

Длинный числовой литерал.

U или u

Числовой литерал без знака.

E или e

Показатель степени в экспоненциальном представлении.

Следующая таблица содержит перечень элементов числовых выражений и их регулярных выражений.

Элемент выражения

Регулярное выражение

Описание

Цифры отображены как D.

[0-9]

Любая цифра.

Экспоненциальное представление чисел отображено как E.

[Ee][+-]?{D}+

E в верхнем или нижнем регистре, по выбору «+» или «-», и одна или более цифр, как определено в D.

Суффикс целого числа отображен как IS.

(([lL]?[uU]?)|([uU]?[lL]?))

Дополнительно можно указать u и l в верхнем или нижнем регистре или сочетание u и l. U или u указывает на значение без знака. L или l указывает длинное значение.

Суффикс числа с плавающей точкой отображен как FS.

([f|F]|[l|L])

F или l в верхнем или нижнем регистре. F или f указывает значение с плавающей точкой (тип данных DT_R4). L или l указывает длинное значение (тип данных DT_R8).

Шестнадцатеричные цифры отображены как H.

[a-fA-F0-9]

Любая шестнадцатеричная цифра.

Следующая таблица описывает допустимые числовые литералы с помощью языка регулярных выражений.

Регулярное выражение

Описание

{D}+{IS}

Любой целочисленный литерал, содержащий, по крайней мере, одну цифру (D) и необязательный суффикс длинного числа или числа без знака (IS). Примеры: 457, 785u, 986L и 7945ul.

{D}+{E}{FS}

Нецелочисленный литерал, содержащий, по крайней мере, одну цифру (D), с экспоненциальным представлением чисел и с суффиксом длинного числа или числа с плавающей точкой. Примеры: 4E8l, 13e-2f и 5E+L.

{D}*"."{D}+{E}?{FS}

Нецелочисленный литерал с десятичным разрядом, десятичной дробью, содержащий, по крайней мере, одну цифру (D), с необязательным показателем разряда (E) и одним идентификатором числа с плавающей точкой или длинного числа (FS). Этот числовой литерал имеет тип данных DT_R4 или DT_R8. Примеры: 6.45E3f, .89E-2l и 1.05E+7F.

{D}+"."{D}*{E}?{FS}

Нецелочисленный литерал, содержащий, по крайней мере, одну значащую цифру (D), десятичный разряд, показатель степени (E) и один идентификатор числа с плавающей точкой или длинного числа (FS). Этот числовой литерал имеет тип данных DT_R4 или DT_R8. Примеры: 1.E-4f, 4.6E6L и 8.365E+2f.

{D}*.{D}+

Нецелочисленный числовой литерал с масштабом и точностью. Содержит десятичный разряд и десятичную часть, которая содержит, по крайней мере, одну цифру (D). Этот числовой литерал имеет тип данных DT_NUMERIC. Примеры: .9, 5.8 и 0.346.

{D}+.{D}*

Нецелочисленный числовой литерал с масштабом и точностью. Содержит, по крайней мере, одну значащую цифру (D) и десятичный разряд. Этот числовой литерал имеет тип данных DT_NUMERIC. Примеры: 6., 0.2, и 8.0.

#{D}+

Идентификатор журнала обращений и преобразований. Состоит из символа решетки (#) и, по крайней мере, одной цифры (D). Примеры: #123.

0[xX]{H}+{uU}

Числовой литерал в шестнадцатиричном формате. Включает ноль, символ «x» в верхнем или нижнем регистре, по крайней мере один символ «H» в верхнем регистре и, по выбору, суффикс числа без знака. Примеры: 0xFF0A и 0X000010000U.

Дополнительные сведения о типах данных, которые использует средство оценки выражений, см. в разделе Типы данных служб Integration Services.

Выражения могут включать числовые литералы с различными типами данных. Когда средство оценки выражений вычисляет эти выражения, оно преобразует данные в совместимые типы. Дополнительные сведения см. в разделе Неявное преобразование типов данных в выражениях.

Преобразование между некоторыми типами данных требует явного приведения. Средство оценки выражений предоставляет оператор приведения для выполнения явного преобразования типов данных. Дополнительные сведения см. в разделе Cast (выражение служб SSIS): Преобразование типов данных служб SSIS.

Сопоставление числовых литералов и типов данных служб Integration Services

Средство оценки выражений выполняет следующие преобразования при вычислении числовых литералов:

  • Целочисленный литерал сопоставляется с целочисленным типом данных следующим образом.

    Суффикс

    Тип результата

    Нет

    DT_I4

    U

    DT_UI4

    L

    DT_I8

    UL

    DT_UI8

    Важное примечаниеВажно!

    Если суффикс длинного числа (L или l) отсутствует, то средство оценки выражений сопоставляет значения со знаком с типом данных DT_I4, а значения без знака — с типом данных DT_UI4, даже если значение выходит за пределы диапазона значений типа данных.

  • Числовой литерал, содержащий показатель степени, преобразуется в тип данных DT_R4 или DT_R8. Если выражение содержит суффикс длинного числа, оно преобразуется в DT_R8; если оно включает суффикс числа с плавающей точкой, то преобразуется в тип данных DT_R4.

  • Если нецелочисленный литерал содержит F или f, он преобразуется в тип данных DT_R4. Если он содержит L или l и число является целым, он преобразуется в тип данных DT_I8. Если это вещественное число, оно преобразуется в тип данных DT_R8. Если число содержит суффикс длинного числа, оно преобразуется в тип данных DT_R8.

  • Нецелочисленный литерал с масштабом и точностью преобразуется в тип данных DT_NUMERIC.

Строковые литералы

Строковый литерал состоит из символов числом от нуля и больше, заключенных в кавычки. Если строка содержит кавычки, то они должны использоваться с управляющей последовательностью, чтобы выражение могло быть проанализировано. В строке разрешены любой 2-байтный символ, кроме \x0000, так как символ \x0000 является пустым символом конца строки.

Строки могут включать другие символы, требующие управляющей последовательности. Следующая таблица содержит управляющие последовательности для строковых литералов.

Управляющая последовательность

Описание

\a

Предупреждение

\b

Возврат

\f

Подача страницы

\n

Новая строка

\r

Возврат каретки

\t

Горизонтальная табуляция

\v

Вертикальная табуляция

\"

Знак кавычек

\\

Обратная косая черта

\xhhhh

Символ Юникод в шестнадцатеричной записи

Логические литералы

Средство оценки выражений поддерживает обычные логические литералы: True и False. Средство оценки выражений не учитывает регистр, так что разрешено любое сочетание букв верхнего и нижнего регистра. Например, TRUE действует так же, как и True.

ПримечаниеПримечание

  В выражении логические литералы должны быть разделены пробелами.

Внешние ресурсы

Техническая статья Список хитрых выражений служб SSIS на сайте pragmaticworks.com