Snowflake SQL API 引用¶
本主题记录了 SQL API 的操作、请求和响应。
本主题内容:
操作¶
POST /api/v2/statements
¶
若要提交一个或多个要执行的 SQL 语句,请向 /api/v2/statements
发送 POST 请求。您可以指定以异步方式执行语句。
请求语法¶
POST /api/v2/statements
(request body)
查询参数¶
参数 |
描述 |
---|---|
|
(可选) API 请求的唯一 ID ( UUID (link removed))。请参阅 重新提交执行 SQL 语句的请求。 |
|
(可选)设置为 如果未指定该参数或将其设置为 false,则执行语句,如果在 45 秒内执行完毕,则返回执行结果。如果语句执行需要更长的时间才能完成,则返回语句句柄。 |
|
(可选)设置为 备注 不能在 GET 请求中指定此参数。 默认情况下,SQL NULL 值返回为值 "data" : [ [ null ], ... ]
将此查询参数设置为 false 时(例如 "data" : [ [ "null" ], ... ]
|
请求标头¶
请求必须包含 所有操作的请求标头 中所列的标头。
请求正文¶
(必填)请求正文必须包含:ref:`label-sql_api_reference_post_statements_request_body`中指定的对象。
响应¶
此操作可以返回下面列出的响应代码。
代码 |
描述 |
---|---|
200 |
语句已成功执行。 对于此响应代码,响应可以具有以下标头: 如果在请求中提交了单个 SQL 语句, 则响应正文将包含一个 ResultSet 对象,其中包含了请求的数据。 备注 如果响应中的 以下是单个 SQL 语句的响应示例,其中,结果在单个分区中返回。 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
}
以下是单个 SQL 语句的响应示例,其中,结果需要在多个分区中返回; 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
}
如果在请求中提交了多个 SQL 语句, 则响应正文将包含一个 ResultSet 对象,其中包含有关多个语句执行状态的详细信息。 在这种情况下,响应不包含请求的数据。相反, 响应中包含字段 以下是指定多个 SQL 语句的请求的响应示例,其中:
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 |
仍在执行该语句。使用 响应正文包含一个 QueryStatus 对象,其中包含有关语句执行状态的详细信息。 以下是响应示例: 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 |
语句的执行超出了超时期限。已取消执行该语句。 响应正文包含一个 QueryStatus 对象,其中包含有关取消语句执行的详细信息。 |
422 |
执行语句时出错。有关详细信息,请查看错误代码和错误消息。 响应正文包含一个 QueryFailureStatus 对象,其中包含有关错误的详细信息。 以下是响应示例: 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"
}
|
有关此操作返回的其他响应代码,请参阅 所有操作的响应代码。
GET /api/v2/statements/{statementHandle}
¶
要查看语句的执行状态,请向 /api/v2/statements/{statementHandle}
发送 GET 请求。如果语句已成功执行,则响应正文将包含一个 ResultSet 对象,其中包含了请求的数据。
请求语法¶
GET /api/v2/statements/{statementHandle}
路径参数¶
参数 |
描述 |
---|---|
|
(必填)要查看的语句的句柄。可以通过 执行语句的请求 的响应中返回的 QueryStatus 对象获取该句柄。 |
查询参数¶
|
(可选) API 请求的唯一 ID ( UUID (link removed))。请参阅 重新提交执行 SQL 语句的请求。 |
---|---|
|
(可选)要返回的分区号。每个分区的大小由 Snowflake 确定。 有关更多信息,请参阅 从响应中获取结果。 |
请求标头¶
请求必须包含 所有操作的请求标头 中所列的标头。
响应¶
此操作可以返回下面列出的响应代码。
代码 |
描述 |
---|---|
200 |
语句已成功执行。 对于此响应代码,响应可以具有以下标头: 响应正文包含一个 ResultSet 对象,其中包含了请求的数据。 以下是一个响应示例,其中 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 |
仍在执行该语句。重复请求以查看语句执行的状态。 响应正文包含一个 QueryStatus 对象,其中包含有关语句执行状态的详细信息。 以下是响应示例: 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 |
执行语句时出错。有关详细信息,请查看错误代码和错误消息。 响应正文包含一个 QueryFailureStatus 对象,其中包含有关错误的详细信息。 |
有关此操作返回的其他响应代码,请参阅 所有操作的响应代码。
POST /api/v2/statements/{statementHandle}/cancel
¶
要取消对语句的执行,请向 /api/v2/statements/{statementHandle}/cancel
发送 POST 请求。
请求语法¶
POST /api/v2/statements/{statementHandle}/cancel
路径参数¶
参数 |
描述 |
---|---|
|
(必填)要查看的语句的句柄。可以通过 执行语句的请求 的响应中返回的 QueryStatus 对象获取该句柄。 |
查询参数¶
参数 |
描述 |
---|---|
|
(可选) API 请求的唯一 ID ( UUID (link removed))。请参阅 重新提交执行 SQL 语句的请求。 |
请求标头¶
请求必须包含 所有操作的请求标头 中所列的标头。
响应¶
此操作可以返回下面列出的响应代码。
代码 |
描述 |
---|---|
200 |
已成功取消执行该语句。 响应正文包含一个 CancelStatus 对象,其中包含有关取消语句的信息。 以下是响应示例: 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 |
执行语句时出错。有关详细信息,请查看错误代码和错误消息。 响应正文包含一个 QueryFailureStatus 对象,其中包含有关错误的详细信息。 以下是响应示例: 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"
}
|
有关此操作返回的其他响应代码,请参阅 所有操作的响应代码。
所有操作的请求标头¶
以下请求标头适用于所有操作:
标头 |
必填还是可选? |
描述 |
---|---|---|
|
必填 |
将其设置为 例如:
请参阅 对服务器进行身份验证。 |
|
必填 |
将其设置为响应正文中可接受的媒体类型(MIME 类型)列表。请包含类型 |
|
必填 |
将其设置为请求正文的媒体类型(MIME 类型)。将其设置为 |
|
必填 |
将其设置为应用程序的名称和版本(例如 |
|
对于密钥对身份验证为必填项 对 OAuth 为可选项 |
如果您使用的是 密钥对身份验证,则此标头为 必填项。必须将此标头设置为 如果使用的是 OAuth 进行身份验证,则此标头为可选项。(如果选择设置此标头,请将其设置为 |
请求正文中的对象类型¶
向 /api/v2/statements/
发送的 POST
请求正文¶
对于向 /api/v2/statements/
端点发送的 POST
请求(请参阅 POST /api/v2/statements),其正文是一个 JSON 对象,用于指定要执行的 SQL 语句、语句上下文和结果集中的数据格式。您可以在请求正文中使用此对象来执行语句。
字段¶
字段 |
描述 |
---|---|
|
(可选)要执行的 SQL 语句。请参阅 SQL API 的限制,了解受支持和不受支持的语句列表。 类型:字符串 |
|
(可选)语句执行超时(以秒为单位)。如果语句的执行时间超过指定的超时时间,则自动取消执行。若要将超时设置为最大值(604800 秒),请将超时设置为 0。如果未设置此字段,系统将使用 STATEMENT_TIMEOUT_IN_SECONDS 参数指定的超时。 类型:64 位带符号整数 示例: |
|
(可选)应在其中执行语句的数据库。此字段中的值区分大小写。 如果省略此字段, SQL API 将使用 用户 :code:`DEFAULT_NAMESPACE 属性 </sql-reference/sql/alter-user>` 值中的数据库。 类型:字符串 示例: |
|
(可选)应在其中执行语句的架构。 此字段中的值区分大小写。 如果省略此字段, SQL API 将使用 用户 :code:`DEFAULT_NAMESPACE 属性 </sql-reference/sql/alter-user>` 值中的架构。 类型:字符串 示例: |
|
(可选)执行语句时要使用的仓库。 此字段中的值区分大小写。 如果省略此字段, SQL API 将使用 用户 :code:`DEFAULT_WAREHOUSE 属性 </sql-reference/sql/alter-user>` 的值。 类型:字符串 示例: |
|
(可选)执行语句时要使用的角色。 此字段中的值区分大小写。 如果省略此字段, SQL API 将使用 用户 :code:`DEFAULT_ROLE 属性 </sql-reference/sql/alter-user>` 的值。 类型:字符串 示例: |
|
(可选) SQL 语句中 绑定变量 的值。执行语句时,Snowflake 会用这些指定的值替换语句中的占位符( 请注意,对于 SQL API 的 GA 版本,此字段的格式可能会发生变化。 类型:对象 示例: {"1":{"type":"FIXED","value":"123"},"2":{"type":"TEXT","value":"teststring"}}
|
|
(可选)要为此请求设置的 会话参数。 类型:对象 (statements_parameters) |
示例¶
以下是正文对象的示例:
{
"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
是一个 JSON 对象,用于指定要为此请求设置的 会话参数。此对象应位于向 /api/v2/statements
端点发送的 POST
请求正文的 parameters
字段中(请参阅 向 /api/v2/statements/ 发送的 POST 请求正文)。
备注
SQL API 仅支持下表中列出的会话参数。
字段¶
字段 |
描述 |
---|---|
|
(可选)指定由 BINARY 到 VARCHAR 转换函数作为输出返回的 VARCHAR 值的格式。有关详细信息,请参阅 BINARY_OUTPUT_FORMAT。 类型:字符串 示例: |
|
(可选)指定要下载的每个查询结果集(或块)的大小上限(以 MB 为单位)。有关详细信息,请参阅 CLIENT_RESULT_CHUNK_SIZE。 类型:整型 示例: |
|
(可选)指定 DATE 数据类型的显示格式。有关详细信息,请参阅 DATE_OUTPUT_FORMAT。有关使用参数确定查询结果输出格式的详细信息,请参阅 设置查询结果输出格式。 类型:字符串 示例: |
|
(在请求中指定多个 SQL 语句时为必填项)使用多语句功能时,指定在请求中提交的 SQL 语句数量。有效值为:
类型:字符串 示例: |
|
(可选)要与 SQL 语句关联的查询标记。有关详细信息,请参阅 QUERY_TAG 参数。 类型:字符串 示例: |
|
(可选)指定结果集中返回的最大行数,其中 0(默认值)表示没有最大行数。有关详细信息,请参阅 ROWS_PER_RESULTSET 参数。 类型:整型 示例:200 |
|
(可选)指定 TIME 数据类型的显示格式。有关详细信息,请参阅 TIME_OUTPUT_FORMAT。有关使用参数确定查询结果输出格式的详细信息,请参阅 设置查询结果输出格式。 类型:字符串 示例: |
|
(可选)指定 TIMESTAMP_LTZ 数据类型的显示格式。有关详细信息,请参阅 TIMESTAMP_LTZ_OUTPUT_FORMAT。有关使用参数确定查询结果输出格式的详细信息,请参阅 设置查询结果输出格式。 类型:字符串 示例: |
|
(可选)指定 TIMESTAMP_NTZ 数据类型的显示格式。有关详细信息,请参阅 TIMESTAMP_NTZ_OUTPUT_FORMAT。有关使用参数确定查询结果输出格式的详细信息,请参阅 设置查询结果输出格式。 类型:字符串 示例: |
|
(可选)指定 TIMESTAMP 数据类型别名的显示格式。有关详细信息,请参阅 TIMESTAMP_OUTPUT_FORMAT。有关使用参数确定查询结果输出格式的详细信息,请参阅 设置查询结果输出格式。 类型:字符串 示例: |
|
(可选)指定 TIMESTAMP_TZ 数据类型的显示格式。有关详细信息,请参阅 TIMESTAMP_TZ_OUTPUT_FORMAT。有关使用参数确定查询结果输出格式的详细信息,请参阅 设置查询结果输出格式。 类型:字符串 示例: |
|
(可选)执行语句时要使用的时区。有关详细信息,请参阅 TIMEZONE 参数。 类型:字符串 示例: |
|
(可选)是否可以在连续调用同一查询时重复使用查询结果(只要原始结果未过期)。有关详细信息,请参阅 USE_CACHED_RESULT 参数 类型:字符串 示例: |
所有操作的响应代码¶
本部分列出了适用于所有操作的响应代码。
代码 |
描述 |
---|---|
400 |
错误请求。 请求负载无效或格式不正确。如果应用程序未发送正确的请求负载,则会发生这种情况。响应正文可能包含错误代码和说明实际原因的消息。应用程序必须重新构造请求正文,然后重试。 以下是响应示例: 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 |
未授权。 请求未获得授权。如果所附的访问令牌无效或丢失,则会发生这种情况。响应正文可能包含错误代码和说明实际原因的消息,例如令牌过期、无效。应用程序必须获取新的访问令牌,然后重试。 请参阅 对服务器进行身份验证。 以下是响应示例: 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 |
禁止。 请求被禁止。如果在未启用 API 的情况下发出请求,则会发生这种情况。 |
404 |
未找到。 请求端点无效。如果 API 端点错误,则会发生这种情况。例如,如果应用程序请求 |
405 |
方法不允许。 请求方法与受支持的 API 不匹配。例如,如果应用程序使用 GET 方法调用 API,但端点只接受 POST,则会发生这种情况。应用程序在发送请求时必须使用受支持的方法。 以下是响应示例: HTTP/1.1 405 Method Not Allowed
Date: Tue, 04 May 2021 22:55:38 GMT
Content-Length: 0
|
415 |
请求标头 API 仅支持 |
429 |
请求过多。 请求数量达到速率限制。应用程序必须降低向 API 端点发送请求的频率。应用程序可能利用退避重试。建议使用指数抖动退避。 当服务器收到过多的并发请求时,也会发生此响应。API 的并发限制由 Snowflake 强制执行的并发限制确定。 以下是响应示例: HTTP/1.1 429 Too many requests
Content-Type: application/json
Content-Length: 69
{
"code" : "390505",
"message" : "Too many requests."
}
|
500 |
内部服务器错误。 服务器遇到不可恢复的系统错误。响应正文可能包含错误代码和消息,以便提供进一步的指导。 |
503 |
服务不可用。 由于服务器超时,请求未得到处理。应用程序可能利用退避重试。建议使用指数抖动退避。 |
504 |
网关超时。 由于服务器超时,请求未得到处理。应用程序可能利用退避重试。建议使用指数抖动退避。 |
所有操作的响应标头¶
响应可以包含以下标头:
标头 |
描述 |
---|---|
|
此标头位于 :ref:` 执行语句的请求 <label-sql_api_reference_post_statements>` 和 :ref:` 查看语句执行状态的请求 <label-sql_api_reference_get_statements>` 的 200 响应中。 此标头提供了指向其他结果分区(例如第一个分区、最后一个分区等)的链接。此标头可以包含多个 URL 条目,并使用不同的 例如: 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">
|
响应正文中的对象类型¶
CancelStatus
¶
CancelStatus
是一个 JSON 对象,其中包含有关取消语句执行的信息。此对象在 :ref:` 取消请求 <label-sql_api_reference_post_statements_cancel>` 的响应正文中返回。
字段¶
字段 |
描述 |
---|---|
|
类型:字符串 |
|
类型:字符串 |
示例: |
类型:字符串 |
|
正在执行的语句的唯一标识符。 类型:字符串 ( UUID (link removed)) 示例: |
|
用于获取语句状态和结果集的 URL。 类型:字符串 ( URL) 示例: |
示例¶
{
"code" : "0",
"sqlState" : "",
"message" : "successfully canceled",
"statementHandle" : "536fad38-b564-4dc5-9892-a4543504df6c",
"statementStatusUrl" : "/api/v2/statements/536fad38-b564-4dc5-9892-a4543504df6c"
}
QueryFailureStatus
¶
QueryFailureStatus 是一个 JSON 对象,其中包含有关执行语句失败的信息。此对象在 :ref:` 执行语句的请求 <label-sql_api_reference_post_statements>` 的 422 响应正文中返回。
字段¶
字段 |
描述 |
---|---|
|
类型:字符串 示例: |
|
类型:字符串 |
|
类型:字符串 示例: |
|
正在执行的语句的唯一标识符。 类型:字符串 ( UUID (link removed)) 示例: |
|
用于指定语句执行开始时间的时间戳。时间戳以纪元以来的毫秒数表示。 类型:64 位带符号整数 示例: |
|
用于获取语句状态和结果集的 URL。 类型:字符串 ( URL) 示例: |
示例¶
{
"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
是一个 JSON 对象,其中包含有关语句执行状态的信息。此对象在以下内容中返回:
:ref:` 执行语句的请求 <label-sql_api_reference_post_statements>` 的 202 和 408 响应正文。
:ref:` 查看语句执行状态的请求 <label-sql_api_reference_get_statements>` 的 202 和 422 响应正文。
字段¶
字段 |
描述 |
---|---|
|
类型:字符串 示例: |
|
类型:字符串 |
|
类型:字符串 示例: |
|
正在执行的语句的唯一标识符。 类型:字符串 ( UUID (link removed)) 示例: |
|
用于指定语句执行开始时间的时间戳。时间戳以纪元以来的毫秒数表示。 类型:64 位带符号整数 示例: |
|
用于获取语句状态和结果集的 URL。 类型:字符串 ( URL) 示例: |
示例¶
{
"code" : "0",
"sqlState" : "",
"message" : "successfully executed",
"statementHandle" : "e4ce975e-f7ff-4b5e-b15e-bf25f59371ae",
"statementStatusUrl" : "/api/v2/statements/e4ce975e-f7ff-4b5e-b15e-bf25f59371ae"
}
ResultSet
¶
ResultSet
是一个 JSON 对象,其中包含语句执行结果。此对象在 :ref:` 执行语句的请求 <label-sql_api_reference_post_statements>` 和 :ref:` 查看语句执行状态的请求 <label-sql_api_reference_get_statements>` 的 200 响应正文中返回。
字段¶
字段 |
描述 |
---|---|
|
类型:字符串 示例: |
|
类型:字符串 |
|
类型:字符串 示例: |
|
正在执行的语句的唯一标识符。 如果在请求中指定了多个语句,则此句柄对应于这些语句集。有关请求中各个语句的句柄,请参阅 类型:字符串 ( UUID (link removed)) 示例: |
|
为此请求执行的语句的唯一标识符数组。 类型:字符串数组 (UUID (link removed)) 示例: |
|
用于指定语句执行开始时间的时间戳。时间戳以纪元以来的毫秒数表示。 示例: |
|
用于获取语句状态和结果集的 URL。 类型:字符串 ( URL) 示例: |
|
有关返回的结果集的元数据。 类型:对象 (ResultSet_resultSetMetaData) |
|
如果请求包含单个 SQL 语句, 则此字段包含结果集数据。 结果集的格式是 JSON 格式的数组构成的数组:
类型:数组构成的数组 示例: [
["customer1","1234 A Avenue","98765","1565481394123000000"],
["customer2","987 B Street","98765","1565516712912012345"],
["customer3","8777 C Blvd","98765","1565605431999999999"],
["customer4","64646 D Circle","98765","1565661272000000000"]
]
如果请求包含多个 SQL 语句, 则此字段仅包含“Multiple statements executed successfully”这一消息。若要检索请求中每个语句的结果,请从 |
|
对于 DML 语句,此字段包含有关受操作影响的行数的统计信息。 类型:对象 (ResultSet_stats) |
ResultSet_resultSetMetaData
¶
ResultSet_resultSetMetaData
是一个 JSON 对象,其中包含有关语句执行结果的元数据。此对象位于 ResultSet 对象的 resultSetMetaData
字段中。
字段¶
字段 |
描述 |
---|---|
|
要返回的分区的索引号(其中, 有关更多信息,请参阅 从响应中获取结果。 |
|
结果的总行数。 类型:64 位带符号整数 示例: |
|
结果集中数据的格式。 类型:字符串 |
|
描述结果集中的列的 ResultSet_resultSetMetaData_rowType 对象数组。 类型:ResultSet_resultSetMetaData_rowType 数组。 示例: [
{"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
是一个 JSON 对象,用于描述一组结果中的一列。这些对象的数组位于 ResultSet_resultSetMetaData 对象的 rowType
字段中。
字段¶
字段 |
描述 |
---|---|
|
列的名称。 类型:字符串 |
|
列的 Snowflake 数据类型。 类型:字符串 |
|
列的长度。 类型:64 位带符号整数 |
|
列的精度。 类型:64 位带符号整数 |
|
列的标度。 类型:64 位带符号整数 |
|
指定列是否可为空。 类型:布尔 |
示例¶
{
"name":"ACCOUNT_NAME",
"type":"TEXT",
"length":1024,
"precision":0,
"scale":0,
"nullable":false
}
ResultSet_stats
¶
ResultSet_stats
是一个 JSON 对象,其中包含有关 DML 语句执行情况的统计信息。此对象位于 ResultSet_resultSetMetaData 对象的 stats
字段中。
字段¶
字段 |
描述 |
---|---|
|
插入的行数。 类型:64 位带符号整数 示例: |
|
更新的行数。 类型:64 位带符号整数 示例: |
|
删除的行数。 类型:64 位带符号整数 示例: |
|
更新的重复行数。 类型:64 位带符号整数 示例: |