In ArcGIS Online müssen Entwickler beim Abfragen gehosteter Feature-Layer standardisierte SQL-Abfragen verwenden. Dadurch können Entwickler und Apps gehostete Feature-Layer leichter abfragen und Angriffe durch Einschleusung von SQL-Befehlen verhindert werden. In allen ArcGIS-Anwendungen werden die standardmäßigen SQL-Abfragen automatisch unterstützt.
Einschränkungen bei standardisierten Abfragen
- Standardisierte Abfragen werden auf die gesamte Organisation angewendet. Es ist nicht möglich, sie für bestimmte Layer zu deaktivieren.
- 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 Microsoft Azure SQL Database, werden ebenfalls nicht unterstützt.
Welche SQL-Funktionen werden in ArcGIS Online unterstützt?
Wenn Sie als App momentan eine datenbankspezifische Syntax der WHERE-Klausel verwenden, müssen Sie die WHERE-Klauseln im Code der App aktualisieren und eine bekannte, von ArcGIS Online unterstützte Syntax verwenden. Aus der folgenden Tabelle geht hervor, welche SQL-Funktionen unterstützt werden und wie die jeweilige Syntax lautet. Wenn die folgenden Funktionen und die Syntax in Ihren Apps verwendet werden, konvertiert ArcGIS Online sie entsprechend den Spezifikationen der Datenbank, die von dem Feature-Layer verwendet wird.
Datumsfunktionen
Funktion | Beschreibung |
---|---|
CURRENT_DATE() | Gibt das aktuelle Datum in UTC-Zeit zurück. Es hängt vom verwendeten Client ab, was im Client angezeigt wird. In ArcGIS Online werden Datumsangaben in der Zeitzone Ihrer Organisation oder Ihres Profils angezeigt. |
CURRENT_TIME() | Gibt das aktuelle UTC-Datum und die UTC-Uhrzeit (Stunden, Minuten, Sekunden) zurück. Es hängt vom verwendeten Client ab, was im Client angezeigt wird. In ArcGIS Online wird die Uhrzeit in der lokalen Uhrzeit Ihrer Organisation oder Ihres Profils angezeigt. |
CURRENT_TIMESTAMP() | Gibt das aktuelle UTC-Datum und die UTC-Uhrzeit (Stunden, Minuten, Sekunden, Millisekunden) zurück. Es hängt vom verwendeten Client ab, was im Client angezeigt wird. In ArcGIS Online wird die Uhrzeit in der lokalen Uhrzeit Ihrer Organisation oder Ihres Profils angezeigt. |
EXTRACT(<unit> FROM <date>) | Gibt einen Teil (<unit>) des angegebenen Datums (<date>) zurück. Mögliche Werte für <unit> sind u. a. Jahr, Monat, Tag, Stunde und Minute. Beispiele
|
Numerische Funktionen
Funktion | Beschreibung |
---|---|
ABS(<number>) | Gibt den absoluten (positiven) Wert der angegebenen Zahl zurück. |
CEILING(<number>) | Gibt die kleinste Ganzzahl zurück, die größer als oder gleich der angegebenen Zahl ist. Beispiel
|
COS(<number>) | Gibt den trigonometrischen Cosinus von <number> zurück, von dem angenommen wird, dass es sich um einen Winkel in Radianten handelt. |
CAST(<number> AS FLOAT | INT) | Konvertiert eine Zahl in einen anderen Typ. FLOAT konvertiert die angegebene Zahl in einen Double-Wert und INT konvertiert sie in einen Integer. |
FLOOR(<number>) | Gibt die größte Ganzzahl zurück, die kleiner als oder gleich der angegebenen Zahl ist. Beispiel
|
LOG(<number>) | Der natürliche Logarithmus der angegebenen Zahl. |
LOG10(<number>) | Der Logarithmus zur Basis 10 der angegebenen Zahl. |
MOD(<number>, <n>) | Gibt den Rest zurück, nachdem der Dividend (<Zahl>) durch den Divisor <n> dividiert wurde. Sowohl <n> als auch <Zahl> muss vom Typ "Integer" sein. Hier einige Beispiele:
|
NULLIF(<number>, <value>) | Gibt null zurück, wenn die angegebene Zahl gleich dem angegebenen Wert ist. NULLIF wird im Allgemeinen verwendet, um Fehler vom Typ "Division durch Null" zu vermeiden, indem <value> auf 0 gesetzt wird. Wenn bei einer Berechnung eines der Argumente ein null-Feldwert ist, ist das Ergebnis der Berechnung null. Beispiel: Sie müssen ein Double-Feld in TOTALPOP dividiert durch POP18 umrechnen. Wenn ein POP18-Wert eines Features gleich Null ist, führt die Berechnung zu dem Fehler "Division durch Null". Sie können einen Filter erstellen, um Datensätze auszublenden, bei denen POP18 gleich Null ist, und anschließend die Berechnung durchführen. Eine einfachere Option ist die Verwendung von NULLIF.
|
POWER(<number> , <y>) | Gibt den Wert der angegebenen Zahl potenziert mit der angegebenen Potenz (<y>) zurück. |
ROUND(<number> , <length>) | Rundet die angegebene Zahl auf die angegebene Länge. Wenn Sie als <length> eine positive Zahl verwenden, wird die Zahl auf die in <length> angegebene Dezimalstelle gerundet. Wenn <length> eine negative Zahl ist, wird die als <number> angegebene Zahl links vom Dezimaltrennzeichen gerundet. Beispiele
|
SIN(<number>) | Gibt den trigonometrischen Sinus von <number> zurück, von dem angenommen wird, dass es sich um einen Winkel in Radianten handelt. |
TAN(<number>) | Gibt den Tangens von <number> zurück, von dem angenommen wird, dass es sich um einen Winkel in Radianten handelt. |
TRUNCATE(<number>,<decimal_place>) | Schneidet <number> an der angegebenen Dezimalstelle (<decimal_place>) ab. Wenn <decimal_place> positiv ist, wird bis zur angegebenen Dezimalstelle gekürzt. Wenn <decimal_place> eine negative Zahl ist, wird <number> links vom Dezimaltrennzeichen gekürzt. Beispiele
|
Zeichenfolgenfunktion
Funktion | Beschreibung |
---|---|
CHAR_LENGTH(<string>) | Gibt die Anzahl der Zeichen in der angegebenen Zeichenfolge zurück. Das Ergebnis ist ein Ganzzahlwert. Beispiel
|
CONCAT(<string1>, <string2>) | Verbindet zwei Zeichenfolgewerte. Es können nur zwei Zeichenfolgen bereitgestellt werden. Um mehr als zwei Zeichenfolgen zu verbinden, müssen aufeinanderfolgende CONCAT-Funktionen verschachtelt werden. Beispiele
NULL-Werte werden in eine leere Zeichenfolge konvertiert. |
POSITION(<substring>, <string>) | Gibt die Position des ersten Vorkommnisses der angegebenen Teilzeichenfolge in der angegebenen Zeichenfolge zurück. Wenn die angegebene Teilzeichenfolge nicht gefunden wird, ist das Ergebnis 0. Beispiele
|
SUBSTRING(<string>, <start>, <length>) | Gibt einen Teil eines Zeichenfolgewertes zurück. <start> ist ein Ganzzahlindex, der angibt, wo die zurückgegebenen Zeichen beginnen, und <length> ist die Anzahl der Zeichen, die zurückgegeben werden sollen. Beispiele
|
TRIM(BOTH | LEADING | TRAILING ' ' FROM <string>) | Gibt eine Zeichenfolge zurück, bei der alle vor- und nachgestellten Leerstellen in der angegebenen Zeichenfolge entfernt wurden. Beispiel
Beachten Sie, dass das zweite Argument aus zwei einfachen Anführungszeichen besteht, zwischen denen sich eine Leerstelle befindet. |
UPPER(<string>) | Gibt eine Zeichenfolge zurück, bei der alle Zeichen in Großbuchstaben konvertiert wurden. Beispiel
|
LOWER(<string>) | Gibt eine Zeichenfolge zurück, bei der alle Zeichen in Kleinbuchstaben konvertiert wurden. Beispiel
|