Funciones SQL estandarizadas en ArcGIS Online

ArcGIS Online incluye una opción de seguridad que fuerza a los desarrolladores a utilizar consultas SQL estandarizadas cuando trabajan con servicios de entidades albergados en ArcGIS Online. Esto facilita a desarrolladores y aplicaciones la consulta a servicios de entidades alojados y ayuda a impedir ataques de inyección SQL. Las consultas estandarizadas no se ejecutan por defecto, pero pueden ser habilitadas por el administrador de la organización.

Límites de las consultas estandarizadas

Las consultas estandarizadas se aplican a toda la organización; no se pueden habilitar para determinados servicios y deshabilitar para otros.

Las consultas estandarizadas no admiten uniones entre diferentes espacios de trabajo.

Las subconsultas como cláusula where, por ejemplo, POP_2010 = (SELECT min(POP_2010) FROM counties, no son compatibles.

Las consultas de servicios de base de datos, por ejemplo, Windows Azure SQL Data, tampoco son compatibles.

¿Qué funciones SQL son compatibles con ArcGIS Online?

Si eres un desarrollador de aplicaciones y estás utilizando actualmente sintaxis de cláusulas where específica de bases de datos, necesitarás actualizar las cláusulas where en el código de la aplicación para utilizar la sintaxis SQL común compatible con ArcGIS Online. La siguiente lista muestra qué funciones SQL son compatibles y la sintaxis de cada una de ellas. Cuando se utilicen las siguientes sintaxis y funciones en las aplicaciones, ArcGIS Online las convertirá para adaptarlas a la especificación de la base de datos utilizada por el servicio.

Tipo de función

Función

Descripción

Ejemplo

Notas

Fecha

FECHA ACTUAL

Devuelve la fecha actual en la zona de tiempo de la sesión.

Campo de fecha < FECHA_ACTUAL

Solo es compatible la siguiente sintaxis de fecha y hora:

fecha 'aaaa-mm-dd', por ejemplo, Campo de fecha = fecha '2012-05-29'

hora 'aaaa-mm-dd hh:mm:ss', por ejemplo, Campo de fecha = hora '2012-05-29 15:14:25'

HORA_ACTUAL

Devuelve la hora local actual.

Campo de hora < HORA_ACTUAL

EXTRACTOEXTRACTO(extract_field FROM extract_source)

Devuelve una sola parte de la fecha/hora, como año, mes, día, hora, minuto y demás.

El argumento extract_field puede ser una de las siguientes palabras clave: AÑO, MES, DÍA, HORA, MINUTO o SEGUNDO.

Busca en todas las filas del mes de noviembre:

EXTRACTO(MES DE campo de fecha) = 11

Matemática

ABS(numeric_exp)

Devuelve el valor absoluto (positivo) de la expresión numérica especificada.

TECHO(numeric_exp)

Devuelve el número entero más pequeño mayor o igual a la expresión numérica especificada.

SUELO(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.

POTENCIA(numeric_exp, integer_exp)

Devuelve el valor de la expresión numérica especificada a la potencia especificada.

POTENCIA(Numericfield, 2) = 16

REDONDO(numeric_exp, integer_exp)

Devuelve un valor numérico redondeado a la longitud o precisión especificada.

TRUNCADO(numeric_exp, integer_exp)

Devuelve un valor numérico sin redondear el valor a una longitud o precisión especificada.

Cadena de caracteres

LONGITUD_CARACTERES(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.

MIN.(string_exp)

Devuelve una expresión de carácter tras convertir los datos con caracteres en mayúscula a minúscula.

SUBCADENA(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:

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

MAY.(string_exp)

Devuelve una expresión de carácter tras convertir los datos con caracteres en minúscula a mayúscula.

9/20/2013