Числовые, строковые и логические литералы

Применимо к: SQL Server Integration Runtime служб SSIS в Фабрика данных Azure

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

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

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

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

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

Суффикс Description
L или l Длинный числовой литерал.
U или u Числовой литерал без знака.
E или e Показатель степени в экспоненциальном представлении.

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

Элемент выражения Регулярное выражение Description
Цифры отображены как 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] Любая шестнадцатеричная цифра.

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

Регулярное выражение Description
{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.

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

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

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

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

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

    Суффикс Тип результата
    None 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.

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

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

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

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

Escape-последовательность Description
\a Предупреждение
\b Отмена
\f Перевод страницы
\n Новая строка
\r Возврат каретки
\t Горизонтальная табуляция
\v Вертикальная табуляция
\" Знак кавычек
\ Обратная косая черта
\xhhhh Символ Юникод в шестнадцатеричной записи

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

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

Примечание

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