Funciones de SQL admitidas en ArcGIS Server
De forma predeterminada, ArcGIS Server exige consultas estandarizadas, lo que requiere que los desarrolladores usen consultas SQL estandarizadas al trabajar con servicios de mapas, entidades, imágenes y WFS mediante REST o SOAP. Esto ayuda a impedir ataques de inyección SQL. Para obtener más información, consulte Acerca de las consultas estandarizadas.
Si, como desarrollador de aplicaciones, utiliza actualmente la sintaxis con cláusulas WHERE específicas de la base de datos, deberá actualizar las cláusulas WHERE en el código de la aplicación para usar la sintaxis de SQL común admitida por ArcGIS Server. La siguiente lista muestra qué funciones SQL son compatibles y la sintaxis de cada una de ellas. Cuando se usan las siguientes funciones y sintaxis en las aplicaciones, ArcGIS Server las convierte para que cumplan la especificación de la base de datos usada por el servicio.
Tipo de función | Función | Descripción | Ejemplo | Notas |
---|---|---|---|---|
Fecha | CURRENT_DATE | Devuelve la fecha actual en la zona de tiempo de la sesión. | Datefield < CURRENT_DATE | Solo es compatible la siguiente sintaxis de fecha y hora: date 'yyyy-mm-dd', por ejemplo, Datefield = date '2012-05-29' timestamp 'yyyy-mm-dd hh:mm:ss', por ejemplo, Datefield = timestamp '2012-05-29 15:14:25' |
CURRENT_TIMESTAMP | Devuelve la hora local actual. | Timestampfield < CURRENT_TIMESTAMP | ||
EXTRACT(extract_field FROM extract_source) | Devuelve una parte de la fecha/hora, como año, mes, día, hora, minuto, etc. El argumento extract_field puede ser una de las siguientes palabras clave: YEAR, MONTH, DAY, HOUR, MINUTE o SECOND. | Busca en todas las filas del mes de noviembre: EXTRACT(MONTH FROM Datefield) = 11 | ||
Matemática | ABS(numeric_exp) | Devuelve el valor absoluto (positivo) de la expresión numérica especificada. | ||
CEILING(numeric_exp) | Devuelve el número entero más pequeño mayor o igual a la expresión numérica especificada. | |||
FLOOR(numeric_exp) | Devuelve el número entero más alto menor o igual a la expresión numérica especificada. | |||
LOG(float_exp) | Devuelve el logaritmo natural de la expresión flotante especificada. | |||
LOG10(float_exp) | Devuelve el logaritmo de base 10 de la expresión flotante especificada. | |||
POWER(numeric_exp, integer_exp) | Devuelve el valor de la expresión numérica especificada a la potencia especificada. | POWER(Numericfield, 2) = 16 | ||
ROUND(numeric_exp, integer_exp) | Devuelve un valor numérico redondeado a la longitud o precisión especificada. | |||
TRUNCATE(numeric_exp, integer_exp) | Devuelve un valor numérico sin redondear el valor a una longitud o precisión especificada. | |||
Cadena | CHAR_LENGTH(string_exp) | Devuelve la longitud en caracteres de la cadena de entrada. | ||
CONCAT(string_exp1, string_exp2) | Devuelve una cadena que es resultado de concatenar dos o más valores de cadena. | |||
LOWER(string_exp) | Devuelve una expresión de carácter tras convertir los datos con caracteres en mayúscula a minúscula. | |||
SUBSTRING(string_exp FROM start FOR length) | Devuelve parte de un carácter o expresión de texto. | Busca en todas las filas en las que los dos primeros caracteres de valores en el campo de cadena son Ch: SUBSTRING(Stringfield FROM 1 FOR 2)='Ch' | ||
UPPER(string_exp) | Devuelve una expresión de carácter tras convertir los datos con caracteres en minúscula a mayúscula. |