Skip To Content

SQL-функции, поддерживающиеся в ArcGIS for Server

По умолчанию, ArcGIS Server применяет стандартизованные запросы, что заставляет разработчиков использовать стандартизированные SQL-запросы при работе с картографическими сервисами, сервисами объектов и изображений, а также сервисами WFS через REST или SOAP. Это позволяет предотвратить SQL-вторжения. Дополнительные сведения см. в разделе О стандартизированных запросах.

Если вы разрабатываете приложения и используете специфический для базы данных синтаксис, вам необходимо обновить выражения where в коде вашей программы с целью использования стандартного синтаксиса SQL, поддерживаемого ArcGIS Server. В следующем списке приведены поддерживаемые SQL-функции и их синтаксис. При использовании следующих функций и синтаксиса в приложениях, ArcGIS Server конвертирует их в соответствии со спецификациями базы данных, использующийся в этом сервисе.

Тип функцииФункцияОписаниеПример:Примечания

Date

CURRENT_DATE

Возвращает текущую дату в часовом поясе сеанса.

Datefield < CURRENT_DATE

Поддерживается только следующий синтаксис даты и временной метки:

date 'гггг-мм-дд', например, Datefield = date '2012-05-29'

timestamp 'гггг-мм-дд чч:мм:сс', например, Datefield = timestamp '2012-05-29 15:14:25'

CURRENT_TIMESTAMP

Возвращает текущее локальное время.

Timestampfield < CURRENT_TIMESTAMP

EXTRACT(extract_field FROM extract_source)

Возвращает одну из частей даты/времени, например год, месяц, день, час, минута и т.д.

Аргументом extract_field может быть одно из следующих ключевых слов: YEAR (ГОД), MONTH (МЕСЯЦ), DAY (ДЕНЬ), HOUR (ЧАС), MINUTE (МИНУТА) или SECOND (СЕКУНДА).

Поиск по всем строкам, начиная с ноября:

EXTRACT(MONTH FROM Datefield) = 11

Математические

ABS(numeric_exp)

Возвращает абсолютное (положительное) значение определенного числового выражения.

CEILING(numeric_exp)

Возвращает наименьшее целое значение, большее или равное определенному числовому выражению.

FLOOR(numeric_exp)

Возвращает наибольшее целое значение, меньшее или равное определенному числовому выражению.

LOG(float_exp)

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

LOG10(float_exp)

Возвращает логарифм по основанию 10 определенного выражения с плавающей точкой.

POWER(numeric_exp, integer_exp)

Возвращает значение определенного выражения в указанной степени.

POWER(Numericfield, 2) = 16

ROUND(numeric_exp, integer_exp)

Возвращает числовое значение, округленное до указанной длины или точности.

TRUNCATE(numeric_exp, integer_exp)

Возвращает числовое значение, без округления до указанной длины или точности.

String

CHAR_LENGTH(string_exp)

Возвращает длину входной строки в символах.

CONCAT(string_exp1, string_exp2)

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

LOWER(string_exp)

Возвращает символьное выражение, полученное после конвертации символов верхнего регистра в символы нижнего регистра.

SUBSTRING(string_exp FROM start FOR length)

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

Поиск всех строк. в которых первые два символа после значений в Stringfield равны Ch:

SUBSTRING(Stringfield FROM 1 FOR 2)='Ch'

UPPER(string_exp)

Возвращает символьное выражение, полученное после конвертации символов нижнего регистра в символы верхнего регистра.