Fonctions SQL prises en charge dans ArcGIS Server
Par défaut, ArcGIS Server appliquer des requêtes standardisées, ce qui force les développeurs à utiliser des requêtes SQL standardisées lorsqu'ils utilisent des services de carte, d'entités, d'imagerie et WFS via REST ou SOAP. Ceci permet d'éviter les attaques par injection de code SQL. Reportez-vous à la rubrique A propos des requêtes standardisées pour plus d'informations.
Si vous développez des applications et que vous utilisez la syntaxe de clause WHERE spécifique à la base de données, vous devez mettre à jour les clauses WHERE du code de votre application pour qu'elles utilisent la syntaxe SQL normale prise en charge par ArcGIS Server. La liste suivante présente les fonctions SQL prises en charge, ainsi que leur syntaxe respective. Lorsque les fonctions et la syntaxe suivantes sont utilisées dans vos applications, ArcGIS Server les convertit pour qu'elles respectent la spécification de la base de données utilisée par le service.
Type de jonction | Fonction | Description | Exemple | Remarques |
---|---|---|---|---|
Date | CURRENT_DATE | Renvoie la date actuelle dans le fuseau horaire de la session. | Datefield < CURRENT_DATE | Seule la syntaxe d'horodatage et de date suivante est prise en charge : date 'yyyy-mm-dd', par exemple, Datefield = date '2012-05-29' timestamp 'yyyy-mm-dd hh:mm:ss', par exemple, Datefield = timestamp '2012-05-29 15:14:25' |
CURRENT_TIMESTAMP | Renvoie l'heure locale actuelle. | Timestampfield < CURRENT_TIMESTAMP | ||
EXTRACT(extract_field FROM extract_source) | Renvoie une seule partie de la date/de l'heure, par exemple l'année, le mois, le jour, l'heure, la minute, etc. L'argument extract_field peut correspondre à l'un des mots-clés suivants : ANNEE, MOIS, JOUR, HEURE, MINUTE ou SECONDE. | Recherche toutes les lignes à partir du mois de novembre : EXTRACT(MONTH FROM Datefield) = 11 | ||
Mathématiques | ABS(numeric_exp) | Renvoie la valeur absolue (positive) de l'expression numérique spécifiée. | ||
CEILING(numeric_exp) | Renvoie le plus petit nombre entier supérieur, ou égal à, l'expression numérique spécifiée. | |||
FLOOR(numeric_exp) | Renvoie le plus grand nombre entier inférieur, ou égal à, l'expression numérique spécifiée. | |||
LOG(float_exp) | Renvoie le logarithme naturel de l'expression réelle simple spécifiée. | |||
LOG10(float_exp) | Renvoie le logarithme en base 10 de l'expression réelle simple spécifiée. | |||
POWER(numeric_exp, integer_exp) | Renvoie la valeur de l'expression numérique spécifiée à la puissance indiquée. | POWER(Numericfield, 2) = 16 | ||
ROUND(numeric_exp, integer_exp) | Renvoie une valeur numérique arrondie à la longueur ou précision spécifiée. | |||
TRUNCATE(numeric_exp, integer_exp) | Renvoie une valeur numérique sans arrondir la valeur à une longueur ou précision spécifiée. | |||
Chaîne | CHAR_LENGTH(string_exp) | Renvoie la longueur en caractères de la chaîne en entrée. | ||
CONCAT(string_exp1, string_exp2) | Renvoie une chaîne comme résultat de la concaténation de deux valeurs de chaîne ou plus. | |||
LOWER(string_exp) | Renvoie une expression de caractères après la conversion de données de caractères majuscules en minuscules. | |||
SUBSTRING(string_exp FROM start FOR length) | Renvoie une partie d'une expression de caractères ou de texte. | Recherche toutes les lignes où les deux premiers caractères des valeurs dans Stringfield sont Ch : SUBSTRING(Stringfield FROM 1 FOR 2)='Ch' | ||
UPPER(string_exp) | Renvoie une expression de caractères avec des données de caractères minuscules converties en majuscules. |