- URL:
- https://<featurelayer-url>/validateSQL
- Methods:
GET
- Version Introduced:
- 10.3
Description
The validate
operation validates an SQL-92 expression or WHERE
clause.
The validate
operation ensures that an SQL-92 expression, such as one written by a user through a user interface, is correct before performing another operation that uses the expression. For example, validate
can be used to validate information that is subsequently passed in as part of the where
parameter of the calculate
operation.
validate
also prevents SQL injection. In addition, all table and field names used in the SQL expression
or WHERE
clause are validated to ensure they are valid tables and fields.
Request parameters
Parameter | Details |
---|---|
| Description: The response format. The default response format is Values: html | json |
sql | Description: The SQL expression or Syntax:
Example:
|
sqlType | Description: Three SQL types are supported in
Values: Example:
|
Validation error codes
When the SQL-92 expression is valid, is
is returned. However, the following error codes and descriptions are returned when an invalid SQL-92 expression is submitted:
Error | Error code | Error description |
---|---|---|
Success | 3000 | Success |
NotSupported | 3001 | Sql expression is not supported. |
SyntaxError | 3002 | Sql expression syntax error. |
SemanticError | 3004 | Sql expression semantic error. |
InvalidTableName | 3007 | Invalid table name. |
InvalidFieldName | 3008 | Invalid field name. |
UnsafeSQL | 3009 | Unsafe sql expression is not allowed. |
Example usage
Example 1: Validate SQL-92 (date SQL-92 WHERE
clause)
sql = " some_date < CURRENT_DATE "
sqlType = "where"
https://services.myserver.com/<orgid>/ArcGIS/rest/services/stdQuery_SQLSrvr/FeatureServer/0/validateSQL?sql=some_date < CURRENT_DATE&sqlType=where&f=html&token
Example 2: Validate SQL-92 (using the where
sql
)
Sql = CNTRY_NAME > 'L' and pop_cntry > 20000000
sqlType = where
https://services.myserver.com/<orgid>/ArcGIS/rest/services/stdQuery_SQLSrvr/FeatureServer/0/validateSQL?sql=CNTRY_NAME > 'L' and pop_cntry > 20000000&sqlType=where&f=html&token
Example 3: Validate sql 92 expression
sql = pop_cntry + 20000000
sqlType = expression
JSON response example (validate is successful)
{
"isValidSQL" : true
}
JSON response example (validation error if some_date is not a valid field)
{
"isValidSQL" : false,
"validationErrors" : [
{
"errorCode" : 3008,
"description" : "Invalid field name [some_date]"
}
]
}