执行 SQL¶
执行一条 SQL,并返回本次执行的查询 ID。用该 ID 查询运行状态;查询成功后,状态响应会返回读取或下载结果所需的结果 ID(statement_id)。
POST https://moi.matrixorigin.cn/newmoi/query/execute
调用前准备¶
准备有目标工作区访问权限的个人访问令牌和工作区 ID。执行 SQL 的身份还需要具有目标数据库的相应权限;不要将未经处理的用户输入直接拼接到 SQL 中。
下方示例使用:
$AI_STUDIO_API_KEY:实际个人访问令牌,通过X-API-KeyHeader 传递。$WORKSPACE_ID:要执行 SQL 的工作区 ID,通过X-Workspace-IDHeader 传递。
请求体¶
字段 |
类型 |
是否必填 |
说明 |
|---|---|---|---|
|
string |
是 |
要执行的 SQL。 |
|
string |
否 |
执行 SQL 时使用的数据库。 |
|
string |
否 |
调用方定义的 SQL 类型标识。 |
|
integer |
否 |
首个结果窗口的起始位置。 |
|
integer |
否 |
结果窗口的行数;未提供或小于等于 |
请求示例¶
curl -X POST "https://moi.matrixorigin.cn/newmoi/query/execute" \
-H "X-API-Key: $AI_STUDIO_API_KEY" \
-H "X-Workspace-ID: $WORKSPACE_ID" \
-H 'Content-Type: application/json' \
-d '{
"db_name": "sales",
"query": "SELECT 1 AS n",
"offset": 0,
"limit": 20
}'
成功响应¶
响应仅返回查询 ID。使用该 ID 查询执行状态,获取状态和 Statement ID。
{
"code": 200,
"data": {
"id": "query_01",
"query_id": "query_01"
}
}
响应字段如下。
字段 |
类型 |
说明 |
|---|---|---|
|
integer |
成功时为 |
|
string |
查询 ID,与 |
|
string |
查询 ID;用于查询状态或取消执行。 |
错误响应¶
{"code": 400, "message": "请求参数无效"}
常见 HTTP 错误¶
HTTP 状态码 |
常见原因 |
建议操作 |
|---|---|---|
|
请求体不是有效 JSON,或缺少 |
检查请求体和必填字段。 |
|
凭据缺失或无效。 |
检查访问令牌。 |
|
当前身份没有执行目标 SQL 所需的权限。 |
使用有权限的凭据,或联系管理员授权。 |
|
指定的数据库或 SQL 引用的对象不存在。 |
检查 |
|
SQL 执行、连接或服务端处理失败。 |
记录错误信息后重试。 |
|
当前角色的执行连接不可用。 |
稍后重试。 |
后续操作¶
记录 data.query_id(与 data.id 相同)。先查询执行状态;状态表示已成功后再查询执行结果或下载执行结果。需要中止时取消执行。