Gestandaardiseerde SQL-functies in ArcGIS Online
ArcGIS Online heeft een beveiligingsoptie die ontwikkelaars dwingt om gestandaardiseerde SQL-query's te gebruiken bij het werken met featureservices die op ArcGIS Online worden gehost. Het is hierdoor eenvoudiger voor ontwikkelaars en applicaties om query's te sturen naar gehoste featureservices en het draagt bij aan het voorkomen van SQL-injectieaanvallen. Gestandaardiseerde query's worden niet standaard afgedwongen, maar dit kan door de beheerder van de organisatie worden ingeschakeld.
Beperkingen van gestandaardiseerde query's
Gestandaardiseerde query's worden toegepast op uw gehele organisatie; ze kunnen niet voor bepaalde services worden ingeschakeld en voor andere services worden uitgeschakeld.
Gestandaardiseerde query's worden niet ondersteund op joins van verschillende werkruimten.
Subquery's zoals een where-clausule, bijvoorbeeld POP_2010 = (SELECT min(POP_2010) FROM counties, worden niet ondersteund.
Query's van databaseservices, bijvoorbeeld Windows Azure SQL Data, worden ook niet ondersteund.
Welke SQL-functies worden ondersteund in ArcGIS Online?
Als u als ontwikkelaar van applicaties momenteel een databasespecifieke syntaxis met where-clausules gebruikt, moet u de where-clausules zodanig bijwerken in de code van uw applicaties dat deze de gebruikelijke SQL-syntaxis gebruiken die door ArcGIS Online wordt ondersteund. In de volgende lijst staat welke SQL-functies worden ondersteund en wat de syntaxis voor elke functie is. Als de volgende functies en syntaxis in uw applicaties worden gebruikt, converteert ArcGIS Online deze zodat ze voldoen aan de specificatie van de database die door de service wordt gebruikt.
Functietype | Functie | Description | Voorbeeld | Opmerkingen |
---|---|---|---|---|
Datum | CURRENT_DATE | Retourneert de huidige datum in de tijdzone van de sessie. | Datumveld < CURRENT_DATE | Alleen de volgende syntaxis voor datum en tijdstempel wordt ondersteund: date 'yyyy-mm-dd', bijvoorbeeld Datumveld = date '2012-05-29' timestamp 'yyyy-mm-dd hh:mm:ss', bijvoorbeeld Datumveld = timestamp '2012-05-29 15:14:25' |
CURRENT_TIMESTAMP | Retourneert de huidige lokale tijd. | Tijdstempelveld < CURRENT_TIMESTAMP | ||
EXTRACTEXTRACT(extract_field FROM extract_source) | Retourneert één onderdeel van de datum/tijd, zoals jaar, maand, dag, uur, minuut, enz. Het argument extract_field kan een van de volgende sleutelwoorden zijn: YEAR, MONTH, DAY, HOUR, MINUTE of SECOND. | Zoek alle rijen van de maand november: EXTRACT(MONTH FROM Datefield) = 11 | ||
Berekeningen | ABS(numeric_exp) | Retourneert de absolute (positieve) waarde van de opgegeven numerieke expressie. | ||
CEILING(numeric_exp) | Retourneert de kleinste integer groter dan, of gelijk aan de opgegeven numerieke expressie. | |||
FLOOR(numeric_exp) | Retourneert de grootste integer kleiner dan, of gelijk aan de opgegeven numerieke expressie. | |||
LOG(float_exp) | Retourneert de natuurlijke logaritme van de opgegeven decimalenexpressie. | |||
LOG10(float_exp) | Retourneert de base-10-logaritme van de opgegeven decimalenexpressie. | |||
POWER(numeric_exp, integer_exp) | Retourneert de waarde van de opgegeven expressie in de opgegeven macht. | POWER(Numericfield, 2) = 16 | ||
ROUND(numeric_exp, integer_exp) | Retourneert een numerieke waarde, afgerond op de opgegeven lengte of nauwkeurigheid. | |||
TRUNCATE(numeric_exp, integer_exp) | Retourneert een numerieke zonder de waarde af te ronden op een opgegeven lengte of nauwkeurigheid. | |||
Tekenreeks | CHAR_LENGTH(string_exp) | Retourneert de lengte in tekens van de invoertekenreeks. | ||
CONCAT(string_exp1, string_exp2) | Retourneert een tekenreeks die het resultaat is van het samenvoegen van twee of meer tekenreekswaarden. | |||
LOWER(string_exp) | Retourneert een tekenreeksexpressie na het converteren van gegevens in hoofdletter in kleine letters. | |||
SUBSTRING(string_exp FROM start FOR length) | Retourneert een onderdeel van een teken of tekstexpressie. | Alle rijen zoeken waar de eerste twee tekens van waarden in Stringfield 'Ch' zijn: SUBSTRING(Stringfield FROM 1 FOR 2)='Ch' | ||
UPPER(string_exp) | Retourneert een tekenreeksexpressie met kleine letters die naar hoofdletters zijn geconverteerd. |