
# 执行脚本 - ExecuteScript
#### 功能介绍
该接口用于执行指定脚本，支持执行DWS SQL、DLI SQL、RDS SQL、Hive SQL、Spark SQL、Presto SQL、Shell、ClickHouse SQL、HetuEngine SQL、Python、Spark Python和Impala SQL脚本。脚本每执行一次，生成一个脚本实例。执行脚本接口是一个异步命令，需要通过[查询脚本实例执行结果 - ListScriptResults](https://support.huaweicloud.com/api-dataartsstudio/dataartsstudio_02_0101.html)获取执行状态和结果。
![](https://support.huaweicloud.com/api-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
DLI SQL和Presto SQL不支持多语句场景。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/DGC/doc?api=ExecuteScript)中调试该接口，支持自动认证鉴权。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-dataartsstudio/abcd.html)。
- 如果使用身份策略授权，当前API调用无需身份策略权限。
 
#### URI
- URI格式 POST /v1/{project_id}/scripts/{script_name}/execute
  
 
- 参数说明
  表1URI参数说明 
  | 参数名         | 是否必选 | 参数类型   | 说明                                                                                                    |
  |:---|:---|:---|:---|
  | project_id  | 是    | String | 项目编号，获取方法请参见[项目ID和账号ID](https://support.huaweicloud.com/api-dataartsstudio/projectid_accountid.html)。 |
  | script_name | 是    | String | 脚本名称。                                                                                                 |
     
  
#### 请求参数
表2请求Header参数 
| 参数名       | 是否必选 | 参数类型   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| workspace | 否    | String | 工作空间id。获取方法请参见[实例ID和工作空间ID](https://support.huaweicloud.com/api-dataartsstudio/dataartsstudio_02_0350.html)。 - 如果不设置该参数，默认查询default工作空间下的数据。  - 如果需要查询其他工作空间的数据，需要带上该消息头。 说明： - 多个DataArts Studio实例需要指定工作空间。  - 当工作空间里面没有default工作空间时，工作空间为必填参数，否则会报错。      |
   
表3参数说明 
| 参数名    | 是否必选 | 参数类型   | 说明                                                 |
|:---|:---|:---|:---|
| params | 否    | Object | 脚本参数Map\<String,String\>。如果脚本中定义了参数，通过params携带参数值。 |
   
脚本参数指的是脚本内容里的参数，如下所示：
![](https://support.huaweicloud.com/api-dataartsstudio/zh-cn_image_0000001104814568.png)
#### 响应参数
表4参数说明 
| 参数名        | 是否必选 | 参数类型   | 说明                                                                                                                                             |
|:---|:---|:---|:---|
| instanceId | 是    | String | 执行脚本的实例ID。在[查询脚本实例执行结果 - ListScriptResults](https://support.huaweicloud.com/api-dataartsstudio/dataartsstudio_02_0101.html)使用instanceId获取执行结果。 |
   
#### 请求示例
执行脚本名称为dws_sql的脚本，脚本中参数tableVar的值为cities，脚本中参数time的值为2019-07-25。
```
POST /v1/b384b9e9ab9b4ee8994c8633aabc9505/scripts/dws_sql/execute
{
    "params": {
        "tableVar": "cities",
        "time": "2019-07-25"
    }
}
```
#### 响应示例
- 成功响应 HTTP状态码 200
  

- 失败响应 HTTP状态码 400
  ```
  {
      "error_code":"DLF.6201",
      "error_msg":"The script does not exist."
  }
  ```
  
 
#### 状态码
状态码请参见[状态码](https://support.huaweicloud.com/api-dataartsstudio/dataartsstudio_02_0310.html)。
