默认情况下,ArcGIS Server 强制使用标准化查询,开发人员需要在通过 REST 或 SOAP 使用地图、要素、影像和 WFS 服务时使用标准化 SQL 查询。这有助于防止 SQL 注入攻击。有关详细信息,请参阅关于标准化查询。
如果您是一名应用程序开发人员,并且正在使用数据库特有的 where 子句语法,需要更新应用程序代码中的 where 子句以使用 ArcGIS Server 所支持的常规 SQL 语法。下面的列表显示了支持的 SQL 函数以及每个 SQL 函数的语法。在您的应用程序中使用下列函数和语法时,ArcGIS Server 会对其进行转换,使其符合服务使用的数据库规范。
函数类型 | 函数 | 说明 | 示例 | 备注 |
---|---|---|---|---|
日期 | CURRENT_DATE | 返回会话时区的当前日期。 | Datefield < CURRENT_DATE | 仅支持下列日期和时间戳语法: 日期 'yyyy-mm-dd',例如 Datefield = date '2012-05-29' timestamp 'yyyy-mm-dd hh:mm:ss',例如,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) | 返回数值,而不将值四舍五入到指定长度或指定精度。 | |||
字符串 | CHAR_LENGTH(string_exp) | 返回输入字符串的字符长度。 | ||
CONCAT(string_exp1, string_exp2) | 返回连接两个或多个字符串值后得到的字符串。 | |||
LOWER(string_exp) | 将大写字符数据转换为小写后返回字符表达式。 | |||
SUBSTRING(string_exp FROM start FOR length) | 返回字符或文本表达式的一部分。 | 搜索字符串字段中值的前两个字符为 Ch 的所有行: SUBSTRING(Stringfield FROM 1 FOR 2)='Ch' | ||
UPPER(string_exp) | 将小写字符数据转换为大写后返回字符表达式。 |