执行 SQL

执行一条 SQL,并返回本次执行的查询 ID。用该 ID 查询运行状态;查询成功后,状态响应会返回读取或下载结果所需的结果 ID(statement_id)。

POST https://moi.matrixorigin.cn/newmoi/query/execute

调用前准备

准备有目标工作区访问权限的个人访问令牌和工作区 ID。执行 SQL 的身份还需要具有目标数据库的相应权限;不要将未经处理的用户输入直接拼接到 SQL 中。

下方示例使用:

  • $AI_STUDIO_API_KEY:实际个人访问令牌,通过 X-API-Key Header 传递。

  • $WORKSPACE_ID:要执行 SQL 的工作区 ID,通过 X-Workspace-ID Header 传递。

请求体

字段

类型

是否必填

说明

query

string

要执行的 SQL。

db_name

string

执行 SQL 时使用的数据库。

sql_type

string

调用方定义的 SQL 类型标识。

offset

integer

首个结果窗口的起始位置。

limit

integer

结果窗口的行数;未提供或小于等于 0 时,服务端使用 1000

请求示例

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"
  }
}

响应字段如下。

字段

类型

说明

code

integer

成功时为 200

data.id

string

查询 ID,与 data.query_id 相同。

data.query_id

string

查询 ID;用于查询状态或取消执行。

错误响应

{"code": 400, "message": "请求参数无效"}

常见 HTTP 错误

HTTP 状态码

常见原因

建议操作

400

请求体不是有效 JSON,或缺少 query

检查请求体和必填字段。

401

凭据缺失或无效。

检查访问令牌。

403

当前身份没有执行目标 SQL 所需的权限。

使用有权限的凭据,或联系管理员授权。

404

指定的数据库或 SQL 引用的对象不存在。

检查 db_name 和 SQL 中的对象名称。

500

SQL 执行、连接或服务端处理失败。

记录错误信息后重试。

503

当前角色的执行连接不可用。

稍后重试。

后续操作

记录 data.query_id(与 data.id 相同)。先查询执行状态;状态表示已成功后再查询执行结果下载执行结果。需要中止时取消执行

最后更新于