ArcGIS Online 中的标准化 SQL 函数

ArcGIS Online 中含有一个安全选项,用于强制开发人员在使用 ArcGIS Online 上托管的要素服务时使用标准化 SQL 查询。此选项使开发人员和应用程序查询托管的要素服务更为简便,并有助于防止 SQL 注入攻击。默认情况下不强制使用标准化查询,但组织管理员可以启用标准化查询。

标准化查询限制

标准化查询会应用于整个组织;不会对某些服务启用和对其他服务禁用标准化查询。

不同工作空间之间的连接不支持标准化查询。

不支持子查询作为 where 子句,如 POP_2010 = (SELECT min(POP_2010) FROM counties

也不支持数据库服务(如 Windows Azure SQL Data)中的查询。

ArcGIS Online 中支持哪些 SQL 函数?

如果您是一名应用程序开发人员,并且正在使用数据库特有的 where 子句语法,需要更新应用程序代码中的 where 子句以使用 ArcGIS Online 所支持的常规 SQL 语法。下面的列表显示了支持的 SQL 函数以及每个 SQL 函数的语法。在您的应用程序中使用下列函数和语法时,ArcGIS Online 会对其进行转换,使其符合服务使用的数据库规范。

函数类型

功能

说明

示例

注意事项

Date

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

EXTRACTEXTRACT(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)

将小写字符数据转换为大写后返回字符表达式。

9/20/2013