Snowflake-SQL-API-Referenz¶
Unter diesem Thema sind die Operationen, Anforderungen und Antworten der SQL-API dokumentiert.
Unter diesem Thema:
Operationen¶
POST /api/v2/statements
¶
Um eine oder mehrere SQL-Anweisungen zur Ausführung zu übermitteln, senden Sie eine POST-Anforderung an /api/v2/statements
. Sie können angeben, dass die Anweisung asynchron ausgeführt werden soll.
Syntax von Anforderungen¶
POST /api/v2/statements
(request body)
Abfrageparameter¶
Parameter |
Beschreibung |
---|---|
|
(Optional) Eindeutige ID (eine UUID) der API-Anforderung. Siehe Erneutes Übermitteln von Anforderungen zum Ausführen von SQL-Anweisungen. |
|
(Optional) Wird auf Wenn der Parameter nicht angegeben oder auf „false“ gesetzt ist, wird eine Anweisung ausgeführt, und die Ergebnisse werden zurückgegeben, wenn die Ausführung innerhalb von 45 Sekunden abgeschlossen ist. Wenn die Ausführung der Anweisung länger dauert, wird das Anweisungshandle zurückgegeben. |
|
(Optional) Auf Bemerkung Sie können diesen Parameter nicht in einer GET-Anforderung angeben. Standardmäßig werden SQL NULL-Werte als der Wert "data" : [ [ null ], ... ]
Das Festlegen dieses Abfrageparameters auf „false“ (z. B. "data" : [ [ "null" ], ... ]
|
Header der Anforderung¶
Die Anforderung muss die unter Anforderungsheader für alle Operationen aufgeführten Header enthalten.
Anforderungstext¶
(Erforderlich) Der Anforderungstext muss das unter Text der POST-Anforderung an /api/v2/statements/ angegebene Objekt enthalten.
Antwort¶
Diese Operation kann die unten aufgeführten Antwortcodes zurückgeben.
Code |
Beschreibung |
---|---|
200 |
Die Anweisung wurde erfolgreich ausgeführt. Für diesen Antwortcode kann die Antwort den folgenden Header haben: Wenn in der Anforderung eine einzelne SQL-Anweisung übermittelt wurde, enthält der Antworttext ein ResultSet-Objekt, das die angeforderten Daten enthält. Bemerkung Wenn das Feld Das folgende Beispiel zeigt eine Antwort für eine einzelne SQL-Anweisung, bei der die Ergebnisse in einer einzigen Partition zurückgegeben werden. Dabei ist HTTP/1.1 200 OK
Date: Tue, 04 May 2021 18:06:24 GMT
Content-Type: application/json
Link:
</api/v2/statements/{handle}?requestId={id1}&partition=0>; rel="first",
</api/v2/statements/{handle}?requestId={id2}&partition=0>; rel="last"
{
"resultSetMetaData" : {
"numRows" : 4,
"format" : "jsonv2",
"rowType" : [ {
"name" : "COLUMN1",
"database" : "",
"schema" : "",
"table" : "",
"scale" : null,
"precision" : null,
"length" : 4,
"type" : "text",
"nullable" : false,
"byteLength" : 16,
"collation" : null
}, {
"name" : "COLUMN2",
"database" : "",
"schema" : "",
"table" : "\"VALUES\"",
"scale" : 0,
"precision" : 1,
"length" : null,
"type" : "fixed",
"nullable" : false,
"byteLength" : null,
"collation" : null
} ],
"partitionInfo": [{
"rowCount": 4,
"uncompressedSize": 1438,
}]
},
"data" : [ [ "test", "2" ], [ "test", "3" ], [ "test", "4" ], [ "test", "5" ] ],
"code" : "090001",
"statementStatusUrl" : "/api/v2/statements/{handle}?requestId={id3}&partition=0",
"sqlState" : "00000",
"statementHandle" : "{handle}",
"message" : "Statement executed successfully.",
"createdOn" : 1620151584132
}
Das folgende Beispiel zeigt eine Antwort für eine einzelne SQL-Anweisung, bei der die Ergebnisse in mehreren Partitionen zurückgegeben werden müssen, wobei HTTP/1.1 200 OK
Date: Tue, 04 May 2021 18:08:15 GMT
Content-Type: application/json
Link:
</api/v2/statements/{handle}?requestId={id1}&partition=0>; rel="first",
</api/v2/statements/{handle}?requestId={id2}&partition=1>; rel="next",
</api/v2/statements/{handle}?requestId={id3}&partition=1>; rel="last"
{
"resultSetMetaData" : {
"numRows" : 56090,
"format" : "jsonv2",
"rowType" : [ {
"name" : "SEQ8()",
"database" : "",
"schema" : "",
"table" : "",
"scale" : 0,
"precision" : 19,
"length" : null,
"type" : "fixed",
"nullable" : false,
"byteLength" : null,
"collation" : null
}, {
"name" : "RANDSTR(1000, RANDOM())",
"database" : "",
"schema" : "",
"table" : "",
"scale" : null,
"precision" : null,
"length" : 16777216,
"type" : "text",
"nullable" : false,
"byteLength" : 16777216,
"collation" : null
} ],
"partitionInfo": [{
"rowCount": 12344,
"uncompressedSize": 14384873,
},{
"rowCount": 43746,
"uncompressedSize": 43748274,
"compressedSize": 746323
}]
},
"data" : [ [ "0", "QqKow2xzdJ....." ],.... [ "98", "ZugTcURrcy...." ] ],
"code" : "090001",
"statementStatusUrl" : "/api/v2/statements/{handle}?requestId={id4}",
"sqlState" : "00000",
"statementHandle" : "{handle}",
"message" : "Statement executed successfully.",
"createdOn" : 1620151693299
}
Wenn in der Anforderung mehrere SQL-Anweisungen übermittelt wurden, enthält der Antworttext ein ResultSet-Objekt mit Details zum Ausführungsstatus der einzelnen Anweisungen. In diesem Fall enthält die Antwort nicht die angeforderten Daten. Stattdessen enthält das Feld Die Antwort enthält das Feld Das folgende Beispiel zeigt eine Antwort auf eine Anforderung, die mehrere SQL-Anweisungen angibt, wobei:
HTTP/1.1 200 OK
Date: Mon, 31 May 2021 22:50:31 GMT
Content-Type: application/json
Link:
</api/v2/statements/{handle}?requestId={id1}&partition=0>; rel="first",
</api/v2/statements/{handle}?requestId={id2}&partition=1>; rel="last"
{
"resultSetMetaData" : {
"numRows" : 56090,
"format" : "jsonv2",
"rowType" : [ {
"name" : "multiple statement execution",
"database" : "",
"schema" : "",
"table" : "",
"type" : "text",
"scale" : null,
"precision" : null,
"byteLength" : 16777216,
"nullable" : false,
"collation" : null,
"length" : 16777216
} ],
"partitionInfo": [{
"rowCount": 12344,
"uncompressedSize": 14384873,
},{
"rowCount": 43746,
"uncompressedSize": 43748274,
"compressedSize": 746323
}]
},
"data" : [ [ "Multiple statements executed successfully." ] ],
"code" : "090001",
"statementHandles" : [ "{handle1}", "{handle2}", "{handle3}" ],
"statementStatusUrl" : "/api/v2/statements/{handle}?requestId={id3}",
"sqlState" : "00000",
"statementHandle" : "{handle}",
"message" : "Statement executed successfully.",
"createdOn" : 1622501430333
}
|
202 |
Die Ausführung der Anweisung ist noch nicht abgeschlossen. Verwenden Sie Der Antworttext enthält ein QueryStatus-Objekt mit Angaben zum Status der Anweisungsausführung. Das folgende Beispiel zeigt eine Antwort: HTTP/1.1 202 Accepted
Date: Tue, 04 May 2021 18:12:37 GMT
Content-Type: application/json
Content-Length: 285
{
"code" : "333334",
"message" :
"Asynchronous execution in progress. Use provided query id to perform query monitoring and management.",
"statementHandle" : "019c06a4-0000-df4f-0000-00100006589e",
"statementStatusUrl" : "/api/v2/statements/019c06a4-0000-df4f-0000-00100006589e"
}
|
408 |
Die Dauer der Anweisungsausführung hat das Timeout-Limit überschritten. Die Ausführung der Anweisung wurde abgebrochen. Der Antworttext enthält ein QueryStatus-Objekt mit Details zum Abbruch der Anweisungsausführung. |
422 |
Beim Ausführen der Anweisung ist ein Fehler aufgetreten. Überprüfen Sie den Fehlercode und die Fehlermeldung für Details. Der Antworttext enthält ein QueryFailureStatus-Objekt mit Details zum Fehler. Das folgende Beispiel zeigt eine Antwort: HTTP/1.1 422 Unprocessable Entity
Date: Tue, 04 May 2021 20:24:11 GMT
Content-Type: application/json
{
"code" : "000904",
"message" : "SQL compilation error: error line 1 at position 7\ninvalid identifier 'AFAF'",
"sqlState" : "42000",
"statementHandle" : "019c0728-0000-df4f-0000-00100006606e"
}
|
Informationen zu den anderen Antwortcodes, die von dieser Operation zurückgegeben werden können, finden Sie unter Antwortcodes für alle Operationen.
GET /api/v2/statements/{statementHandle}
¶
Um den Status der Anweisungsausführung zu prüfen, senden Sie eine GET-Anforderung an /api/v2/statements/{statementHandle}
. Wenn die Anweisung erfolgreich ausgeführt wurde, enthält der Antworttext ein ResultSet-Objekt, das die angeforderten Daten enthält.
Syntax von Anforderungen¶
GET /api/v2/statements/{statementHandle}
Pfadparameter¶
Parameter |
Beschreibung |
---|---|
|
(Erforderlich) Das Handle der Anweisung, die Sie prüfen möchten. Sie können dieses Handle über das QueryStatus-Objekt erhalten, das in der Antwort auf die Anforderung zur Anweisungsausführung zurückgegeben wird. |
Abfrageparameter¶
|
(Optional) Eindeutige ID (eine UUID) der API-Anforderung. Siehe Erneutes Übermitteln von Anforderungen zum Ausführen von SQL-Anweisungen. |
---|---|
|
(Optional) Die Partitionsnummer, die zurückgegeben werden soll. Die Größe der einzelnen Partitionen wird von Snowflake festgelegt. Weitere Informationen dazu finden Sie unter Abrufen der Ergebnisse aus der Antwort. |
Header der Anforderung¶
Die Anforderung muss die unter Anforderungsheader für alle Operationen aufgeführten Header enthalten.
Antwort¶
Diese Operation kann die unten aufgeführten Antwortcodes zurückgeben.
Code |
Beschreibung |
---|---|
200 |
Die Anweisung wurde erfolgreich ausgeführt. Für diesen Antwortcode kann die Antwort den folgenden Header haben: Der Antworttext enthält ein ResultSet-Objekt, das die angeforderten Daten enthält. Das folgende Beispiel zeigt eine Antwort, wobei HTTP/1.1 200 OK
Date: Tue, 04 May 2021 20:25:46 GMT
Content-Type: application/json
Link:
</api/v2/statements/{handle}?requestId={id1}&partition=0>; rel="first",
</api/v2/statements/{handle}?requestId={id2}&partition=0>; rel="prev",
</api/v2/statements/{handle}?requestId={id3}&partition=1>; rel="next",
</api/v2/statements/{handle}?requestId={id4}&partition=10>; rel="last"
{
"resultSetMetaData" : {
"numRows" : 10000,
"format" : "jsonv2",
"rowType" : [ {
"name" : "SEQ8()",
"database" : "",
"schema" : "",
"table" : "",
"scale" : 0,
"precision" : 19,
"length" : null,
"type" : "fixed",
"nullable" : false,
"byteLength" : null,
"collation" : null
}, {
"name" : "RANDSTR(1000, RANDOM())",
"database" : "",
"schema" : "",
"table" : "",
"scale" : null,
"precision" : null,
"length" : 16777216,
"type" : "text",
"nullable" : false,
"byteLength" : 16777216,
"collation" : null
} ],
"partitionInfo": [{
"rowCount": 12344,
"uncompressedSize": 14384873,
},{
"rowCount": 43746,
"uncompressedSize": 43748274,
"compressedSize": 746323
}]
},
"data" : [ [ "10", "lJPPMTSwps......" ], ... [ "19", "VJKoHmUFJz......" ] ],
"code" : "090001",
"statementStatusUrl" : "/api/v2/statements/{handle}?requestId={id5}&partition=10",
"sqlState" : "00000",
"statementHandle" : "{handle}",
"message" : "Statement executed successfully.",
"createdOn" : 1620151693299
}
|
202 |
Die Ausführung der Anweisung ist noch nicht abgeschlossen. Wiederholen Sie die Anforderung, um den Status der Anweisungsausführung zu überprüfen. Der Antworttext enthält ein QueryStatus-Objekt mit Angaben zum Status der Anweisungsausführung. Das folgende Beispiel zeigt eine Antwort: HTTP/1.1 202 Accepted
Date: Tue, 04 May 2021 22:31:33 GMT
Content-Type: application/json
Content-Length: 285
{
"code" : "333334",
"message" :
"Asynchronous execution in progress. Use provided query id to perform query monitoring and management.",
"statementHandle" : "019c07a7-0000-df4f-0000-001000067872",
"statementStatusUrl" : "/api/v2/statements/019c07a7-0000-df4f-0000-001000067872"
}
|
422 |
Beim Ausführen der Anweisung ist ein Fehler aufgetreten. Überprüfen Sie den Fehlercode und die Fehlermeldung für Details. Der Antworttext enthält ein QueryFailureStatus-Objekt mit Details zum Fehler. |
Informationen zu den anderen Antwortcodes, die von dieser Operation zurückgegeben werden können, finden Sie unter Antwortcodes für alle Operationen.
POST /api/v2/statements/{statementHandle}/cancel
¶
Um die Ausführung einer Anweisung abzubrechen, senden Sie eine POST-Anforderung an /api/v2/statements/{statementHandle}/cancel
.
Syntax von Anforderungen¶
POST /api/v2/statements/{statementHandle}/cancel
Pfadparameter¶
Parameter |
Beschreibung |
---|---|
|
(Erforderlich) Das Handle der Anweisung, die Sie prüfen möchten. Sie können dieses Handle über das QueryStatus-Objekt erhalten, das in der Antwort auf die Anforderung zur Anweisungsausführung zurückgegeben wird. |
Abfrageparameter¶
Parameter |
Beschreibung |
---|---|
|
(Optional) Eindeutige ID (eine UUID) der API-Anforderung. Siehe Erneutes Übermitteln von Anforderungen zum Ausführen von SQL-Anweisungen. |
Header der Anforderung¶
Die Anforderung muss die unter Anforderungsheader für alle Operationen aufgeführten Header enthalten.
Antwort¶
Diese Operation kann die unten aufgeführten Antwortcodes zurückgeben.
Code |
Beschreibung |
---|---|
200 |
Die Ausführung der Anweisung wurde erfolgreich abgebrochen. Der Antworttext enthält ein CancelStatus-Objekt mit Informationen zum Abbruch der Anweisungsausführung. Das folgende Beispiel zeigt eine Antwort: HTTP/1.1 200 OK
Date: Tue, 04 May 2021 22:52:15 GMT
Content-Type: application/json
Content-Length: 230
{
"code" : "000604",
"sqlState" : "57014",
"message" : "SQL execution canceled",
"statementHandle" : "019c07bc-0000-df4f-0000-001000067c3e",
"statementStatusUrl" : "/api/v2/statements/019c07bc-0000-df4f-0000-001000067c3e"
}
|
422 |
Beim Ausführen der Anweisung ist ein Fehler aufgetreten. Überprüfen Sie den Fehlercode und die Fehlermeldung für Details. Der Antworttext enthält ein QueryFailureStatus-Objekt mit Details zum Fehler. Das folgende Beispiel zeigt eine Antwort: HTTP/1.1 422 Unprocessable Entity
Date: Tue, 04 May 2021 22:52:49 GMT
Content-Type: application/json
Content-Length: 183
{
"code" : "000709",
"message" : "Statement 019c07bc-0000-df4f-0000-001000067c3e not found",
"sqlState" : "02000",
"statementHandle" : "019c07bc-0000-df4f-0000-001000067c3e"
}
|
Informationen zu den anderen Antwortcodes, die von dieser Operation zurückgegeben werden können, finden Sie unter Antwortcodes für alle Operationen.
Anforderungsheader für alle Operationen¶
Die folgenden Anforderungsheader gelten für alle Operationen:
Header |
Erforderlich oder optional? |
Beschreibung |
---|---|---|
|
Erforderlich |
Geben Sie hier
Beispiel:
Siehe Authentifizierung am Server. |
|
Erforderlich |
Geben Sie hier die Liste der Medientypen (MIME-Typen) an, die im Antworttext zulässig sind. Fügen Sie den Typ |
|
Erforderlich |
Geben Sie hier den Medientyp (MIME-Typ) des Anforderungstextes an. Geben Sie |
|
Erforderlich |
Geben Sie hier den Namen und die Version Ihrer Anwendung an (z. B. |
|
Erforderlich für Schlüsselpaar-Authentifizierung Optional für OAuth |
Wenn Sie die Schlüsselpaar-Authentifizierung verwenden, ist dieser Header erforderlich. Sie müssen diesen Header auf Wenn Sie OAuth zur Authentifizierung verwenden, ist dieser Header optional. (Wenn Sie den Header einstellen möchten, setzen Sie ihn auf |
Objekttypen im Anforderungstext¶
Text der POST
-Anforderung an /api/v2/statements/
¶
Der Text einer POST
-Anforderung an den Endpunkt /api/v2/statements/
(siehe POST /api/v2/statements) ist ein JSON-Objekt, mit dem Sie die auszuführende SQL-Anweisung, den Anweisungskontext und das Datenformat des Resultsets angeben. Sie verwenden dieses Objekt im Anforderungstext, um eine Anweisung auszuführen.
Felder¶
Feld |
Beschreibung |
---|---|
|
(Optional) SQL-Anweisung, die ausgeführt werden soll. Eine Liste der unterstützten und nicht unterstützten Anweisungen finden Sie unter Einschränkungen der SQL-API. Typ: Zeichenfolge |
|
(Optional) Timeout in Sekunden für die Anweisungsausführung. Wenn die Ausführung einer Anweisung länger dauert als das angegebene Timeout, wird die Ausführung automatisch abgebrochen. Um für das Timeout den maximalen Wert (604.800 Sekunden) festzulegen, setzen Sie „timeout“ auf 0. Wenn kein Wert angegeben wird, wird das im Parameter STATEMENT_TIMEOUT_IN_SECONDS festgelegte Timeout verwendet. Typ: vorzeichenbehaftete 64-Bit-Ganzzahl Beispiel: |
|
(Optional) Datenbank, in der die Anweisung ausgeführt werden soll. Beim Wert in diesem Feld wird zwischen Groß- und Kleinschreibung unterschieden. Wenn Sie dieses Feld auslassen, verwendet die SQL-API die Datenbank aus dem Wert der Benutzereigenschaft Typ: Zeichenfolge Beispiel: |
|
(Optional) Schema, in dem die Anweisung ausgeführt werden soll. Beim Wert in diesem Feld wird zwischen Groß- und Kleinschreibung unterschieden. Wenn Sie dieses Feld auslassen, verwendet die SQL-API das Schema aus dem Wert der Benutzereigenschaft Typ: Zeichenfolge Beispiel: |
|
(Optional) Warehouse, das beim Ausführen der Anweisung verwendet werden soll. Beim Wert in diesem Feld wird zwischen Groß- und Kleinschreibung unterschieden. Wenn Sie dieses Feld auslassen, verwendet die SQL-API den Wert der Benutzereigenschaft Typ: Zeichenfolge Beispiel: |
|
(Optional) Rolle, die beim Ausführen der Anweisung verwendet werden soll. Beim Wert in diesem Feld wird zwischen Groß- und Kleinschreibung unterschieden. Wenn Sie dieses Feld auslassen, verwendet die SQL-API den Wert der Benutzereigenschaft Typ: Zeichenfolge Beispiel: |
|
(Optional) Werte der bindenden Variablen in der SQL-Anweisung. Beim Ausführen der Anweisung ersetzt Snowflake die Platzhalter ( Beachten Sie, dass sich das Format dieses Feldes in der Version für die allgemeine Verfügbarkeit der SQL-API möglicherweise ändern kann. Typ: Objekt Beispiel: {"1":{"type":"FIXED","value":"123"},"2":{"type":"TEXT","value":"teststring"}}
|
|
(Optional) Sitzungsparameter, die Sie für diese Anforderung einstellen möchten. Typ: Objekt (statements_parameters) |
Beispiel¶
Das folgende Beispiel zeigt ein Textobjekt:
{
"statement" : "select * from T where c1=?",
"timeout" : 10,
"database" : "TESTDB",
"schema" : "TESTSCHEMA",
"warehouse" : "TESTWH",
"role" : "TESTROLE",
"bindings" : {
"1" : {
"type" : "FIXED",
"value" : "123"
}
}
}
statements_parameters
¶
statements_parameters
ist ein JSON-Objekt, mit dem Sie die Sitzungsparameter angeben, die Sie für diese Anforderung festlegen möchten. Dieses Objekt muss im Feld parameters
des POST
-Anforderungstextes an den Endpunkt /api/v2/statements
(siehe Text der POST-Anforderung an /api/v2/statements/) enthalten sein.
Bemerkung
Die SQL-API unterstützt nur die in der folgenden Tabelle aufgeführten Sitzungsparameter.
Felder¶
Feld |
Beschreibung |
---|---|
|
(Optional) Gibt das Format für VARCHAR-Werte an, die von BINARY-VARCHAR-Konvertierungsfunktionen zurückgegeben werden. Weitere Details dazu finden Sie unter BINARY_OUTPUT_FORMAT. Typ: Zeichenfolge Beispiel: |
|
(Optional) Gibt die maximale Größe (in MB) jedes Sets (oder Blocks) der herunterzuladenden Abfrageergebnisse an. Weitere Details dazu finden Sie unter CLIENT_RESULT_CHUNK_SIZE. Typ: Ganzzahl (Integer) Beispiel: |
|
(Optional) Gibt das Anzeigeformat für den Datentyp DATE an. Weitere Details dazu finden Sie unter DATE_OUTPUT_FORMAT. Weitere Details zur Verwendung von Parametern zur Bestimmung des Ausgabeformats von Abfrageergebnissen finden Sie unter Formatieren der Ausgabe von Abfrageergebnissen. Typ: Zeichenfolge Beispiel: |
|
(Erforderlich, wenn in einer Anforderung mehrere SQL-Anweisungen angegeben werden) Gibt die Anzahl der SQL-Anweisungen in einer Anforderung an, die übermittelt werden, wenn die Funktion für mehrere Anweisungen verwendet wird. Gültige Werte:
Typ: Zeichenfolge Beispiel: |
|
(Optional) Abfrage-Tag, das Sie der SQL-Anweisung zuordnen möchten. Weitere Details dazu finden Sie unter Parameter QUERY_TAG. Typ: Zeichenfolge Beispiel: |
|
(Optional) Gibt die maximale Anzahl von Zeilen an, die in einem Resultset zurückgegeben werden, wobei 0 (Standard) für kein Maximum steht. Weitere Details dazu finden Sie unter Parameter ROWS_PER_RESULTSET. Typ: Ganzzahl (Integer) Beispiel: 200 |
|
(Optional) Gibt das Anzeigeformat für den Datentyp TIME an. Weitere Details dazu finden Sie unter TIME_OUTPUT_FORMAT. Weitere Details zur Verwendung von Parametern zur Bestimmung des Ausgabeformats von Abfrageergebnissen finden Sie unter Formatieren der Ausgabe von Abfrageergebnissen. Typ: Zeichenfolge Beispiel: |
|
(Optional) Gibt das Anzeigeformat für den Datentyp TIMESTAMP_LTZ an. Weitere Details dazu finden Sie unter TIMESTAMP_LTZ_OUTPUT_FORMAT. Weitere Details zur Verwendung von Parametern zur Bestimmung des Ausgabeformats von Abfrageergebnissen finden Sie unter Formatieren der Ausgabe von Abfrageergebnissen. Typ: Zeichenfolge Beispiel: |
|
(Optional) Gibt das Anzeigeformat für den Datentyp TIMESTAMP_NTZ an. Weitere Details dazu finden Sie unter TIMESTAMP_NTZ_OUTPUT_FORMAT. Weitere Details zur Verwendung von Parametern zur Bestimmung des Ausgabeformats von Abfrageergebnissen finden Sie unter Formatieren der Ausgabe von Abfrageergebnissen. Typ: Zeichenfolge Beispiel: |
|
(Optional) Gibt das Anzeigeformat für den Datentypalias TIMESTAMP an. Weitere Details dazu finden Sie unter TIMESTAMP_OUTPUT_FORMAT. Weitere Details zur Verwendung von Parametern zur Bestimmung des Ausgabeformats von Abfrageergebnissen finden Sie unter Formatieren der Ausgabe von Abfrageergebnissen. Typ: Zeichenfolge Beispiel: |
|
(Optional) Gibt das Anzeigeformat für den Datentyp TIMESTAMP_TZ an. Weitere Details dazu finden Sie unter TIMESTAMP_TZ_OUTPUT_FORMAT. Weitere Details zur Verwendung von Parametern zur Bestimmung des Ausgabeformats von Abfrageergebnissen finden Sie unter Formatieren der Ausgabe von Abfrageergebnissen. Typ: Zeichenfolge Beispiel: |
|
(Optional) Zeitzone, die beim Ausführen der Anweisung verwendet werden soll. Weitere Details dazu finden Sie unter Parameter TIMEZONE. Typ: Zeichenfolge Beispiel: |
|
(Optional) Gibt an, ob Abfrageergebnisse zwischen aufeinanderfolgenden Aufrufen derselben Abfrage wiederverwendet werden können, solange das ursprüngliche Ergebnis nicht abgelaufen ist. Weitere Informationen dazu finden Sie unter Parameter USE_CACHED_RESULT. Typ: Zeichenfolge Beispiel: |
Antwortcodes für alle Operationen¶
In diesem Abschnitt sind die Antwortcodes aufgeführt, die für alle Operationen gelten.
Code |
Beschreibung |
---|---|
400 |
„Bad Request“. Nutzlast (Payload) der Anforderung ist ungültig oder falsch formatiert. Dies geschieht, wenn die Anwendung nicht die korrekte Anforderungsnutzlast gesendet hat. Der Antworttext kann den Fehlercode und eine Meldung mit Angaben zur tatsächlichen Ursache enthalten. Die Anwendung muss den Anforderungstext für einen erneuten Versuch rekonstruieren. Das folgende Beispiel zeigt eine Antwort: HTTP/1.1 400 Bad Request
Date: Tue, 04 May 2021 22:54:21 GMT
Content-Type: application/json
{
"code" : "390142",
"message" : "Incoming request does not contain a valid payload."
}
|
401 |
Unauthorized (Nicht autorisiert). Die Anforderung ist nicht autorisiert. Dies geschieht, wenn das angehängte Zugriffstoken ungültig ist oder fehlt. Der Antworttext kann den Fehlercode und eine Meldung mit Angaben zur tatsächlichen Ursache, wie abgelaufenes oder ungültiges Token, enthalten. Die Anwendung muss ein neues Zugriffstoken für einen erneuten Versuch erhalten. Siehe Authentifizierung am Server. Das folgende Beispiel zeigt eine Antwort: HTTP/1.1 401 Unauthorized
Date: Tue, 04 May 2021 20:17:57 GMT
Content-Type: application/json
{
"code" : "390303",
"message" : "Invalid OAuth access token. ...TTTTTTTT"
}
|
403 |
Forbidden (Unzulässig). Die Anforderung ist unzulässig. Dies geschieht, wenn die Anforderung auch dann erfolgt, wenn die API nicht aktiviert ist. |
404 |
Not found (Nicht gefunden). Der Endpunkt der Anforderung ist ungültig. Dies geschieht, wenn der API-Endpunkt falsch ist. Wenn die Anwendung z. B. |
405 |
Method Not Allowed (Methode nicht zugelassen). Die Anforderungsmethode stimmt nicht mit der unterstützten API überein. Dies geschieht beispielsweise, wenn die Anwendung die API mit der GET-Methode aufruft, der Endpunkt aber nur POST akzeptiert. Die Anwendung muss beim Senden der Anforderung eine unterstützte Methode verwenden. Das folgende Beispiel zeigt eine Antwort: HTTP/1.1 405 Method Not Allowed
Date: Tue, 04 May 2021 22:55:38 GMT
Content-Length: 0
|
415 |
Der Anforderungsheader Die API unterstützt nur |
429 |
Too many requests (Zu viele Anforderungen). Die Anzahl der Anforderungen hat das Ratenlimit erreicht. Die Anwendung muss die Häufigkeit der an die API-Endpunkte gesendeten Anforderungen reduzieren. Die Anwendung kann es mit Backoff erneut versuchen. Es wird ein exponentiell gejittertes Backoff empfohlen. Diese Antwort kann auch auftreten, wenn der Server zu viele gleichzeitige Anforderungen erhält. Die Parallelitätseinschränkungen für die API werden durch die von Snowflake erzwungenen Parallelitätseinschränkungen bestimmt. Das folgende Beispiel zeigt eine Antwort: HTTP/1.1 429 Too many requests
Content-Type: application/json
Content-Length: 69
{
"code" : "390505",
"message" : "Too many requests."
}
|
500 |
Internal Server Error (Interner Serverfehler). Der Server ist auf einen nicht behebbaren Systemfehler gestoßen. Der Antworttext kann den Fehlercode und die Fehlermeldung zur weiteren Bearbeitung enthalten. |
503 |
Service Unavailable (Dienst ist nicht verfügbar). Die Anforderung wurde aufgrund eines Timeout auf dem Server nicht bearbeitet. Die Anwendung kann es mit Backoff erneut versuchen. Es wird ein exponentiell gejittertes Backoff empfohlen. |
504 |
Gateway Timeout. Die Anforderung wurde aufgrund eines Timeout auf dem Server nicht bearbeitet. Die Anwendung kann es mit Backoff erneut versuchen. Es wird ein exponentiell gejittertes Backoff empfohlen. |
Antwortheader für alle Operationen¶
Antworten können die folgenden Header enthalten:
Header |
Beschreibung |
---|---|
|
Dieser Header ist in der 200-Antwort für eine Anforderung zur Anweisungsausführung und einer Anforderung zur Überprüfung des Status der Anweisungsausführung enthalten. Dieser Header enthält Links zu anderen Partitionen von Ergebnissen (z. B. zur ersten Partition, zur letzten Partition usw.). Der Header kann mehrere URL-Einträge mit unterschiedlichen Beispiel: Link: </api/v2/statements/e127cc7c-7812-4e72-9a55-3b4d4f969840?partition=1; rel="last">,
</api/v2/statements/e127cc7c-7812-4e72-9a55-3b4d4f969840?partition=1; rel="next">,
</api/v2/statements/e127cc7c-7812-4e72-9a55-3b4d4f969840?partition=0; rel="first">
|
Objekttypen im Antworttext¶
CancelStatus
¶
CancelStatus
ist ein JSON-Objekt, das Informationen zum Abbruch der Anweisungsausführung enthält. Dieses Objekt wird im Antworttext einer Abbruchanforderung zurückgegeben.
Felder¶
Feld |
Beschreibung |
---|---|
|
Typ: Zeichenfolge |
|
Typ: Zeichenfolge |
Beispiel: |
Typ: Zeichenfolge |
|
Eindeutiger Bezeichner für die auszuführende Anweisung. Typ: Zeichenfolge (eine UUID) Beispiel: |
|
URL zum Abrufen von Anweisungsstatus und Resultset. Typ: Zeichenfolge (eine URL) Beispiel: |
Beispiel¶
{
"code" : "0",
"sqlState" : "",
"message" : "successfully canceled",
"statementHandle" : "536fad38-b564-4dc5-9892-a4543504df6c",
"statementStatusUrl" : "/api/v2/statements/536fad38-b564-4dc5-9892-a4543504df6c"
}
QueryFailureStatus
¶
QueryFailureStatus ist ein JSON-Objekt, das Informationen zur fehlgeschlagenen Ausführung einer Anweisung enthält. Dieses Objekt wird im Antworttext der 422-Antwort einer Anforderung zur Ausführung der Anweisung zurückgegeben.
Felder¶
Feld |
Beschreibung |
---|---|
|
Typ: Zeichenfolge Beispiel: |
|
Typ: Zeichenfolge |
|
Typ: Zeichenfolge Beispiel: |
|
Eindeutiger Bezeichner für die auszuführende Anweisung. Typ: Zeichenfolge (eine UUID) Beispiel: |
|
Zeitstempel, der angibt, wann die Ausführung der Anweisung begonnen hat. Der Zeitstempel wird in Millisekunden seit der Epoche angegeben. Typ: vorzeichenbehaftete 64-Bit-Ganzzahl Beispiel: |
|
URL zum Abrufen von Anweisungsstatus und Resultset. Typ: Zeichenfolge (eine URL) Beispiel: |
Beispiel¶
{
"code" : "002140",
"sqlState" : "42601",
"message" : "SQL compilation error",
"statementHandle" : "e4ce975e-f7ff-4b5e-b15e-bf25f59371ae",
"statementStatusUrl" : "/api/v2/statements/e4ce975e-f7ff-4b5e-b15e-bf25f59371ae"
}
QueryStatus
¶
QueryStatus
ist ein JSON-Objekt, das Informationen zum Status der Anweisungsausführung enthält. Dieses Objekt wird auf folgende Weise zurückgegeben:
Im Antworttext der 202- und 408-Antwort für eine Anforderung zur Anweisungsausführung.
Im Antworttext der 202- und 422-Antwort für eine Anforderung zum Überprüfen des Status der Anweisungsausführung.
Felder¶
Feld |
Beschreibung |
---|---|
|
Typ: Zeichenfolge Beispiel: |
|
Typ: Zeichenfolge |
|
Typ: Zeichenfolge Beispiel: |
|
Eindeutiger Bezeichner für die auszuführende Anweisung. Typ: Zeichenfolge (eine UUID) Beispiel: |
|
Zeitstempel, der angibt, wann die Ausführung der Anweisung begonnen hat. Der Zeitstempel wird in Millisekunden seit der Epoche angegeben. Typ: vorzeichenbehaftete 64-Bit-Ganzzahl Beispiel: |
|
URL zum Abrufen von Anweisungsstatus und Resultset. Typ: Zeichenfolge (eine URL) Beispiel: |
Beispiel¶
{
"code" : "0",
"sqlState" : "",
"message" : "successfully executed",
"statementHandle" : "e4ce975e-f7ff-4b5e-b15e-bf25f59371ae",
"statementStatusUrl" : "/api/v2/statements/e4ce975e-f7ff-4b5e-b15e-bf25f59371ae"
}
ResultSet
¶
ResultSet
ist ein JSON-Objekt, das die Ergebnisse der Anweisungsausführung enthält. Dieses Objekt wird im Antworttext der 200-Antwort einer Anforderung zur Anweisungsausführung und einer Anforderung zur Überprüfung des Status der Anwendungsausführung zurückgegeben.
Felder¶
Feld |
Beschreibung |
---|---|
|
Typ: Zeichenfolge Beispiel: |
|
Typ: Zeichenfolge |
|
Typ: Zeichenfolge Beispiel: |
|
Eindeutiger Bezeichner für die auszuführende Anweisung. Wenn in der Anforderung mehrere Anweisungen angegeben wurden, entspricht dieses Handle der Menge dieser Anweisungen. Die Handles der einzelnen Anweisungen in der Anforderung finden Sie im Feld Typ: Zeichenfolge (eine UUID) Beispiel: |
|
Array mit eindeutigen Bezeichnern für die Anweisungen, die für diese Anforderung ausgeführt werden. Typ: Array von Zeichenfolgen (UUID) Beispiel: |
|
Zeitstempel, der angibt, wann die Ausführung der Anweisung begonnen hat. Der Zeitstempel wird in Millisekunden seit der Epoche angegeben. Beispiel: |
|
URL zum Abrufen von Anweisungsstatus und Resultset. Typ: Zeichenfolge (eine URL) Beispiel: |
|
Metadaten über das zurückgegebene Resultset. Typ: Objekt (ResultSet_resultSetMetaData) |
|
Wenn die Anforderung eine einzelne SQL-Anweisung enthält, enthält dieses Feld die Daten des Resultset. Ein Resultset-Format ist ein Array von Arrays in JSON:
Typ: Array von Arrays Beispiel: [
["customer1","1234 A Avenue","98765","1565481394123000000"],
["customer2","987 B Street","98765","1565516712912012345"],
["customer3","8777 C Blvd","98765","1565605431999999999"],
["customer4","64646 D Circle","98765","1565661272000000000"]
]
Wenn die Anforderung mehrere SQL-Anweisungen enthält, enthält das Feld nur die Meldung „Multiple statements executed successfully“ (Mehrere Anweisungen erfolgreich ausgeführt). Um die Ergebnisse für jede Anweisung in der Anforderung abzurufen, rufen Sie die Handles für diese Anweisungen aus dem Feld |
|
Bei DML-Anweisungen enthält dieses Feld eine Statistik über die Anzahl der von der Operation betroffenen Zeilen. Typ: Objekt (ResultSet_stats) |
ResultSet_resultSetMetaData
¶
ResultSet_resultSetMetaData
ist ein JSON-Objekt, das Metadaten über die Ergebnisse der Anweisungsausführung enthält. Dieses Objekt befindet sich im Feld resultSetMetaData
des Objekts ResultSet.
Felder¶
Feld |
Beschreibung |
---|---|
|
Die Indexnummer der Partition, die Sie zurückgeben möchten (wobei Weitere Informationen dazu finden Sie unter Abrufen der Ergebnisse aus der Antwort. |
|
Die Gesamtzahl der Ergebniszeilen. Typ: vorzeichenbehaftete 64-Bit-Ganzzahl Beispiel: |
|
Format der Daten im Resultset. Typ: Zeichenfolge |
|
Array von ResultSet_resultSetMetaData_rowType-Objekten, die die Spalten im Resultset beschreiben. Typ: Array von ResultSet_resultSetMetaData_rowType. Beispiel: [
{"name":"ROWNUM","type":"FIXED","length":0,"precision":38,"scale":0,"nullable":false},
{"name":"ACCOUNT_ID","type":"FIXED","length":0,"precision":38,"scale":0,"nullable":false},
{"name":"ACCOUNT_NAME","type":"TEXT","length":1024,"precision":0,"scale":0,"nullable":false},
{"name":"ADDRESS","type":"TEXT","length":16777216,"precision":0,"scale":0,"nullable":true},
{"name":"ZIP","type":"TEXT","length":100,"precision":0,"scale":0,"nullable":true},
{"name":"CREATED_ON","type":"TIMESTAMP_NTZ","length":0,"precision":0,"scale":3,"nullable":false}
]
|
ResultSet_resultSetMetaData_rowType
¶
ResultSet_resultSetMetaData_rowType
ist ein JSON-Objekt, das eine Spalte in einem Resultset beschreibt. Ein Array dieser Objekte befindet sich im Feld rowType
des Objekts ResultSet_resultSetMetaData.
Felder¶
Feld |
Beschreibung |
---|---|
|
Name der Spalte. Typ: Zeichenfolge |
|
Snowflake-Datentypen der Spalte. Typ: Zeichenfolge |
|
Länge der Spalte. Typ: vorzeichenbehaftete 64-Bit-Ganzzahl |
|
Genauigkeit der Spalte. Typ: vorzeichenbehaftete 64-Bit-Ganzzahl |
|
Skalierung der Spalte. Typ: vorzeichenbehaftete 64-Bit-Ganzzahl |
|
Gibt an, ob die Spalte nullwertfähig ist oder nicht. Typ: Boolean |
Beispiel¶
{
"name":"ACCOUNT_NAME",
"type":"TEXT",
"length":1024,
"precision":0,
"scale":0,
"nullable":false
}
ResultSet_stats
¶
ResultSet_stats
ist ein JSON-Objekt, das Statistiken über die Ausführung einer DML-Anweisung enthält. Dieses Objekt befindet sich im Feld stats
des Objekts ResultSet_resultSetMetaData.
Felder¶
Feld |
Beschreibung |
---|---|
|
Anzahl der eingefügten Zeilen. Typ: vorzeichenbehaftete 64-Bit-Ganzzahl Beispiel: |
|
Anzahl der aktualisierten Zeilen. Typ: vorzeichenbehaftete 64-Bit-Ganzzahl Beispiel: |
|
Anzahl der gelöschten Zeilen. Typ: vorzeichenbehaftete 64-Bit-Ganzzahl Beispiel: |
|
Anzahl der doppelten Zeilen, die aktualisiert wurden. Typ: vorzeichenbehaftete 64-Bit-Ganzzahl Beispiel: |