---
orphan: true
---

# 运行 NL2SQL

```{raw} html
<div class="mo-api-page-show-toc" aria-hidden="true"></div>
```

在指定数据库中执行 NL2SQL 生成的 SQL，并返回结果列和行。

```text
POST https://moi.matrixorigin.cn/newmoi/catalog/nl2sql/run_sql
```

## 调用前准备

先确认 SQL 语句和目标数据库。准备有目标工作区访问权限的个人访问令牌、目标工作区 ID、数据库 ID 和 SQL 语句。 该接口会执行提交的 SQL；提交前请确认语句的影响范围。

## 请求体

:::::::{div} mo-api-tabs
::::::{tab-set}
:::::{tab-item} 请求示例

```bash
curl -X POST "https://moi.matrixorigin.cn/newmoi/catalog/nl2sql/run_sql" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "database_id": '"$DATABASE_ID"',
    "sql": "SELECT * FROM orders LIMIT 10"
  }'
```

:::::
:::::{tab-item} 参数说明

::::{tab-set}
:::{tab-item} 请求体

| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `database_id` | integer | 是 | 执行 SQL 的数据库 ID。 |
| `sql` | string | 是 | 要执行的 SQL。 |

:::
::::

:::::
::::::
:::::::

## 成功响应

成功时返回 `200`、结果列名和结果行。

:::::::{div} mo-api-tabs mo-api-response-tabs
::::::{tab-set}
:::::{tab-item} 响应示例

```json
{
  "code": "OK",
  "msg": "OK",
  "data": {
    "columns": ["id", "amount"],
    "rows": [[1, 100]]
  }
}
```

:::::
:::::{tab-item} 字段说明

::::{tab-set}
:::{tab-item} 通用字段

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `code` | string | 成功时为 `OK`。 |
| `msg` | string | 成功时为 `OK`。 |

:::
:::{tab-item} 查询结果

下面表格展开响应示例中 `data` 对象；每一行是该对象的一个字段。

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `columns` | string（字符串数组） | 结果集列名。 |
| `rows` | array | 查询结果行；每行字段顺序与 `columns` 相同。 |

:::
::::

:::::
::::::
:::::::

## 错误响应

:::::::{div} mo-api-tabs mo-api-response-tabs
::::::{tab-set}
:::::{tab-item} 响应示例

```json
{
  "code": "ErrServer",
  "msg": "服务器内部错误",
  "data": null
}
```

:::::
:::::{tab-item} 字段说明

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `code` | string | 错误代码。 |
| `msg` | string | 错误信息。 |
| `data` | null | 错误响应中的附加数据；本示例为 `null`。 |

:::::
::::::
:::::::
