Standardisierte SQL-Funktionen in ArcGIS Online
ArcGIS Online bietet eine Sicherheitsoption, die Entwickler dazu zwingt, bei der Arbeit mit auf ArcGIS Online gehosteten Feature-Services standardisierte SQL-Abfragen zu verwenden. Dadurch können Entwickler und Anwendungen gehostete Feature-Services leichter abfragen und Angriffe durch Einschleusung von SQL-Befehlen verhindert werden. Standardisierte Abfragen werden nicht standardmäßig erzwungen, diese Option kann jedoch vom Organisationsadministrator aktiviert werden.
Einschränkungen bei standardisierten Abfragen
Standardisierte Abfragen werden auf die gesamte Organisation angewendet. Es ist nicht möglich, sie nur für einige Services zu aktivieren.
Standardisierte Abfragen werden nicht für Verbindungen zwischen unterschiedlichen Workspaces unterstützt.
Unterabfragen wie eine WHERE-Klausel, beispielsweise POP_2010 = (SELECT min(POP_2010) FROM counties, werden nicht unterstützt.
Abfragen aus Datenbank-Services, zum Beispiel Windows Azure-SQL-Daten, werden ebenfalls nicht unterstützt.
Welche SQL-Funktionen werden in ArcGIS Online unterstützt?
Wenn Sie als Anwendungsentwickler momentan eine datenbankspezifische Syntax der WHERE-Klausel verwenden, müssen Sie die WHERE-Klauseln im Code der Anwendung aktualisieren und eine bekannte, von ArcGIS Online unterstützte Syntax verwenden. Aus der folgenden Liste geht hervor, welche SQL-Funktionen unterstützt werden und wie die jeweilige Syntax lautet. Wenn die folgenden Funktionen und die Syntax in Ihren Anwendungen verwendet werden, konvertiert ArcGIS Online sie entsprechend den Spezifikationen der Datenbank, die von dem Service verwendet wird.
Funktionstyp | Funktion | Beschreibung | Beispiel | Hinweise |
---|---|---|---|---|
Datum | CURRENT_DATE | Gibt das aktuelle Datum in der Sitzungszeitzone zurück. | Datefield < CURRENT_DATE | Es wird nur die folgende Datums- und Zeitstempelsyntax unterstützt: Datum ' JJJJ-MM-TT', beispielsweise Datefield = date '2012-05-29' Zeitstempel 'JJJJ-MM-TT hh:mm.ss', beispielsweise, Datefield = timestamp '2012-05-29 15:14:25' |
CURRENT_TIMESTAMP | Gibt die aktuelle lokale Uhrzeit zurück. | Timestampfield < CURRENT_TIMESTAMP | ||
EXTRACTEXTRACT(extract_field FROM extract_source) | Gibt einen Teil der Datums-/Zeitangabe wie Jahr, Monat, Tag, Stunde, Minute usw. zurück. Beim Argument extract_field kann es sich um eines der folgenden Schlüsselwörter handeln: YEAR, MONTH, DAY, HOUR, MINUTE oder SECOND. | Sucht alle Zeilen des Monats November: EXTRACT(MONTH FROM Datefield) = 11 | ||
Mathematik | ABS(numeric_exp) | Gibt den absoluten (positiven) Wert des angegebenen numerischen Ausdrucks zurück. | ||
CEILING(numeric_exp) | Gibt die kleinste Ganzzahl zurück, die größer als oder gleich dem angegebenen numerischen Ausdruck ist. | |||
FLOOR(numeric_exp) | Gibt die größte Ganzzahl zurück, die kleiner als oder gleich dem angegebenen numerischen Ausdruck ist. | |||
LOG(float_exp) | Gibt den natürlichen Logarithmus des angegebenen float-Ausdrucks zurück. | |||
LOG10(float_exp) | Gibt den Logarithmus der Basis 10 des angegebenen float-Ausdrucks zurück. | |||
POWER(numeric_exp, integer_exp) | Gibt den Wert des angegebenen Ausdrucks mit der angegebenen Potenz zurück. | POWER(Numericfield, 2) = 16 | ||
ROUND(numeric_exp, integer_exp) | Gibt einen numerischen Wert an, der auf die angegebene Länge oder Genauigkeit gerundet ist. | |||
TRUNCATE(numeric_exp, integer_exp) | Gibt einen numerischen Wert an, ohne den Wert auf eine angegebene Länge oder Genauigkeit zu runden. | |||
Text | CHAR_LENGTH(string_exp) | Gibt die Länge der Eingabezeichenfolge in Zeichen zurück. | ||
CONCAT(string_exp1, string_exp2) | Gibt eine Zeichenfolge zurück, die das Ergebnis der Verkettung von mindestens zwei Zeichenfolgenwerten ist. | |||
LOWER(string_exp) | Gibt einen Zeichenausdruck nach dem Konvertieren von Großbuchstaben in Kleinbuchstaben zurück. | |||
SUBSTRING(string_exp FROM start FOR length) | Gibt einen Teil eines Zeichen- oder Textausdrucks zurück. | Sucht alle Zeilen, bei denen die ersten beiden Zeichen aus Werten in Stringfield "Ch" lauten: SUBSTRING(Stringfield FROM 1 FOR 2)='Ch' | ||
UPPER(string_exp) | Gibt einen Zeichenausdruck mit Daten zurück, deren Kleinbuchstaben in Großbuchstaben konvertiert wurden. |