Skip To Content

Funciones SQL estandarizadas en ArcGIS Online

ArcGIS Online incluye una opción de configuración de seguridad que fuerza a los desarrolladores a utilizar consultas SQL estandarizadas cuando trabajan con capas de entidades alojadas. Esto facilita a desarrolladores y aplicaciones la consulta a capas de entidades alojadas y ayuda a impedir ataques de inyección SQL. La opción para permitir exclusivamente consultas SQL estándar está habilitada de forma predeterminada.

Limitaciones de las consultas estandarizadas

  • Las consultas estandarizadas se aplican a toda la organización; no se pueden habilitar para algunas capas y deshabilitar para otras.
  • Las consultas estandarizadas no se admiten en uniones entre espacios de trabajo diferentes.
  • Las subconsultas como una 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 es un desarrollador de aplicaciones y está utilizando una sintaxis de cláusula WHERE específica de bases de datos, necesitará 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 la capa de entidades.

Tipo de funciónFunciónDescripciónEjemploNotas

fecha

CURRENT_DATE

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

Datefield < CURRENT_DATE

Solo se admite la siguiente sintaxis de fecha y marca de tiempo:

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

Búsqueda de 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 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 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 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 de caracteres que es el resultado de concatenar dos o más valores.

LOWER(string_exp)

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

SUBSTRING(string_exp FROM start FOR length)

Devuelve parte de una expresión de caracteres o de texto.

Búsqueda de todas las filas en que los dos primeros caracteres de los valores de Stringfield sea Ch:

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

UPPER(string_exp)

Devuelve una expresión de caracteres con datos de caracteres en minúsculas convertidos a mayúsculas.