diff --git a/.translation-init b/.translation-init
index 1e230987a9..e1d5d2612b 100644
--- a/.translation-init
+++ b/.translation-init
@@ -1 +1 @@
-Translation initialization: 2025-10-22T10:47:38.215216
+Translation initialization: 2025-10-22T12:30:42.269759
diff --git a/docs/cn/guides/54-query/02-advanced/stored-procedure.md b/docs/cn/guides/54-query/02-advanced/stored-procedure.md
index 143681733e..4cdaa60b8a 100644
--- a/docs/cn/guides/54-query/02-advanced/stored-procedure.md
+++ b/docs/cn/guides/54-query/02-advanced/stored-procedure.md
@@ -3,23 +3,23 @@ title: 存储过程
sidebar_position: 3
---
-存储过程(Stored Procedure)是一组存储在数据库中的可执行命令或逻辑块,用 SQL 或其他编程语言编写,旨在可重用以高效地执行特定任务或操作。
+存储过程(Stored Procedure)是一组存储在数据库中的可执行命令或逻辑块,用 SQL 或其他编程语言编写,旨在通过可重用的方式高效地执行特定任务或操作。
## 支持的语言
-**Databend 目前仅支持 [SQL 脚本](/sql/stored-procedure-scripting/)**。通过使用 SQL 脚本,用户可以定义带有控制流结构(如循环(FOR、WHILE、REPEAT)和条件(IF、CASE))的过程,从而实现复杂的逻辑和高效的多步操作。
+**Databend 目前仅支持 [SQL 脚本](/sql/stored-procedure-scripting/)**。通过使用 SQL 脚本,用户可以定义包含循环(FOR、WHILE、REPEAT)和条件(IF、CASE)等控制流结构的存储过程,从而实现复杂逻辑和高效的多步操作。
## 限制
在使用存储过程时,存在以下限制:
-- 存储过程是一项实验性功能。在使用它们之前,请将 `enable_experimental_procedure` 设置为 1;
+- 存储过程是一项实验性功能。在使用之前,需要将 `enable_experimental_procedure` 设置为 1;
```sql
SET enable_experimental_procedure = 1;
```
-- 存储过程以字符串形式返回结果,无论指定的返回类型是什么,都不会对返回的值强制执行声明的类型。
+- 无论指定的返回类型是什么,存储过程都以字符串形式返回结果,并且不会对返回的值强制执行声明的类型。
## 管理存储过程
@@ -27,7 +27,7 @@ Databend 提供了一系列用于管理存储过程的命令。更多详细信
## 使用示例
-假设我们想要计算给定范围内所有偶数的和。此存储过程接受一个起始值 start_val 和一个结束值 end_val,并计算此范围内所有偶数的和。
+假设我们想要计算给定范围内所有偶数的和。这个存储过程接受一个起始值 start_val 和一个结束值 end_val,并计算该范围内所有偶数的和。
```sql
SET enable_experimental_procedure = 1;
@@ -35,7 +35,7 @@ SET enable_experimental_procedure = 1;
CREATE PROCEDURE sum_even_numbers(start_val UInt8, end_val UInt8)
RETURNS UInt8 NOT NULL
LANGUAGE SQL
-COMMENT='计算所有偶数的和'
+COMMENT='Calculate the sum of all even numbers'
AS $$
BEGIN
LET sum := 0;
@@ -50,12 +50,12 @@ END;
$$;
```
-如果我们想计算从 1 到 10 的所有偶数的和,可以如下调用该过程:
+如果我们想计算从 1 到 10 之间所有偶数的和,可以像下面这样调用该存储过程:
```sql
CALL PROCEDURE sum_even_numbers(1, 10);
--- 结果: 2 + 4 + 6 + 8 + 10 = 30
+-- 结果:2 + 4 + 6 + 8 + 10 = 30
┌────────┐
│ Result │
├────────┤
diff --git a/docs/cn/sql-reference/00-sql-reference/index.md b/docs/cn/sql-reference/00-sql-reference/index.md
index 05832f241a..aecdf98840 100644
--- a/docs/cn/sql-reference/00-sql-reference/index.md
+++ b/docs/cn/sql-reference/00-sql-reference/index.md
@@ -5,10 +5,10 @@ slug: '/'
欢迎来到 SQL 参考——您快速掌握 Databend 核心功能的指南!
-- **通用参考:** 深入介绍数据类型(Data Types)、系统表(System Tables)和表引擎(Table Engines)等基础元素,助您全面理解 Databend 的架构。
+- **通用参考:** 深入了解数据类型(Data Types)、系统表(System Tables)和表引擎(Table Engines)等基础元素,帮助您牢固掌握 Databend 的结构。
-- **SQL 命令:** 提供执行命令的详细信息、语法和实用示例,让您在 Databend 中自信地管理数据。
+- **SQL 命令:** 提供执行命令的详细信息、语法和实用示例,助您在 Databend 中自信地进行数据管理。
-- **SQL 函数:** Databend 函数的简明指南,深入剖析其多样化功能,实现高效的数据管理与分析。
+- **SQL 函数:** Databend 函数的简明指南,深入解析其多样化功能,以实现高效的数据管理和分析。
-- **存储过程与脚本:** 涵盖 SQL 脚本语言,包括变量、控制流、结果处理及存储过程中的动态执行。
\ No newline at end of file
+- **存储过程与脚本:** 涵盖 SQL 脚本语言,包括变量、控制流、结果处理以及在存储过程中的动态执行。
\ No newline at end of file
diff --git a/docs/cn/sql-reference/10-sql-commands/00-ddl/18-procedure/index.md b/docs/cn/sql-reference/10-sql-commands/00-ddl/18-procedure/index.md
index be56ebb9e7..f298c8d81b 100644
--- a/docs/cn/sql-reference/10-sql-commands/00-ddl/18-procedure/index.md
+++ b/docs/cn/sql-reference/10-sql-commands/00-ddl/18-procedure/index.md
@@ -1,28 +1,28 @@
---
-title: 存储过程
+title: 存储过程(Stored Procedure)
---
-本页面按功能组织,全面概述了 Databend 中的存储过程(Stored Procedure)操作,方便您参考。
+本页面全面概述了 Databend 中的存储过程(Stored Procedure)操作,并按功能进行组织,方便您参考。
## 过程管理
| 命令 | 描述 |
|---------|-------------|
-| [CREATE PROCEDURE](create-procedure.md) | 创建一个新的存储过程 |
-| [DROP PROCEDURE](drop-procedure.md) | 移除一个存储过程 |
-| [CALL](call-procedure.md) | 执行一个存储过程 |
+| [CREATE PROCEDURE](create-procedure.md) | 创建一个新的存储过程(Stored Procedure) |
+| [DROP PROCEDURE](drop-procedure.md) | 移除一个存储过程(Stored Procedure) |
+| [CALL](call-procedure.md) | 执行一个存储过程(Stored Procedure) |
## 过程信息
| 命令 | 描述 |
|---------|-------------|
-| [DESCRIBE PROCEDURE](desc-procedure.md) | 显示特定存储过程的详细信息 |
-| [SHOW PROCEDURES](show-procedures.md) | 列出当前数据库中的所有存储过程 |
+| [DESCRIBE PROCEDURE](desc-procedure.md) | 显示特定存储过程(Stored Procedure)的详细信息 |
+| [SHOW PROCEDURES](show-procedures.md) | 列出当前数据库中的所有存储过程(Stored Procedure) |
:::note
-Databend 中的存储过程(Stored Procedure)允许您将一系列 SQL 语句封装到一个可重用的单元中,该单元可以作为单个命令执行,从而提高代码的组织性和可维护性。
+Databend 中的存储过程(Stored Procedure)允许您将一系列 SQL 语句封装成一个可重用的单元,可以作为单个命令执行,从而提高代码的组织性和可维护性。
:::
## 延伸阅读
-探索 [存储过程与 SQL 脚本](/sql/stored-procedure-scripting/) 获取完整的语言参考,包括变量处理、控制流、游标(Cursor)以及在过程中的动态 SQL 使用。
\ No newline at end of file
+探索 [存储过程(Stored Procedure)和 SQL 脚本](/sql/stored-procedure-scripting/) 获取完整的语言参考,包括变量处理、控制流、游标以及在过程(Procedure)中使用动态 SQL。
\ No newline at end of file
diff --git a/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/1-array/array-reduce.md b/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/1-array/array-reduce.md
index 21e1f1018c..abca3a93bb 100644
--- a/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/1-array/array-reduce.md
+++ b/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/1-array/array-reduce.md
@@ -6,7 +6,7 @@ import FunctionDescription from '@site/src/components/FunctionDescription';
-通过应用指定的 Lambda 表达式(Lambda Expression),将 JSON 数组归约为单个值。有关 Lambda 表达式的更多信息,请参见 [Lambda 表达式](/sql/stored-procedure-scripting/#lambda-expressions)。
+通过应用指定的 Lambda 表达式(Lambda Expression),将 JSON 数组归约为单个值。有关 Lambda 表达式的更多信息,请参阅 [Lambda 表达式](/sql/stored-procedure-scripting/#lambda-expressions)。
## 语法
@@ -16,7 +16,7 @@ ARRAY_REDUCE(, )
## 示例
-本示例将数组中的所有元素相乘(2 * 3 * 4):
+此示例将数组中的所有元素相乘(2 * 3 * 4):
```sql
SELECT ARRAY_REDUCE(
diff --git a/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/1-array/array-transform.md b/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/1-array/array-transform.md
index 59b328b467..7b37b73783 100644
--- a/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/1-array/array-transform.md
+++ b/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/1-array/array-transform.md
@@ -6,7 +6,7 @@ import FunctionDescription from '@site/src/components/FunctionDescription';
-使用指定的转换 Lambda 表达式(Lambda Expression)转换 JSON 数组中的每个元素。有关 Lambda 表达式的更多信息,请参见 [Lambda 表达式](/sql/stored-procedure-scripting/#lambda-expressions)。
+使用指定的转换 Lambda 表达式(Lambda Expression)转换 JSON 数组中的每个元素。有关 Lambda 表达式的更多信息,请参阅 [Lambda 表达式](/sql/stored-procedure-scripting/#lambda-expressions)。
## 语法
diff --git a/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/3-map/map-filter.md b/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/3-map/map-filter.md
index 6961929c8a..4dcf577433 100644
--- a/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/3-map/map-filter.md
+++ b/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/3-map/map-filter.md
@@ -5,7 +5,7 @@ import FunctionDescription from '@site/src/components/FunctionDescription';
-使用 [lambda 表达式](/sql/stored-procedure-scripting/#lambda-expressions) 定义的条件,过滤 JSON 对象中的键值对。
+使用 [lambda 表达式](/sql/stored-procedure-scripting/#lambda-expressions) 定义的条件,筛选 JSON 对象中的键值对。
## 语法
@@ -19,7 +19,7 @@ MAP_FILTER(, (, ) -> )
## 示例
-以下示例从 JSON 对象中仅提取 `"status": "active"` 键值对,并过滤掉其他字段:
+以下示例仅从 JSON 对象中提取 `"status": "active"` 键值对,并过滤掉其他字段:
```sql
SELECT MAP_FILTER('{"status":"active", "user":"admin", "time":"2024-11-01"}'::VARIANT, (k, v) -> k = 'status') AS filtered_metadata;
diff --git a/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/3-map/map-transform-keys.md b/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/3-map/map-transform-keys.md
index 25909d45a5..077b605b9e 100644
--- a/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/3-map/map-transform-keys.md
+++ b/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/3-map/map-transform-keys.md
@@ -19,7 +19,7 @@ MAP_TRANSFORM_KEYS(, (, ) -> )
## 示例
-此示例在每个键后追加 `_v1`,从而创建一个键已修改的新 JSON 对象:
+此示例在每个键后追加 "_v1",从而创建一个键已修改的新 JSON 对象:
```sql
SELECT MAP_TRANSFORM_KEYS('{"name":"John", "role":"admin"}'::VARIANT, (k, v) -> CONCAT(k, '_v1')) AS versioned_metadata;
diff --git a/docs/cn/sql-reference/30-stored-procedure-scripting/index.md b/docs/cn/sql-reference/30-stored-procedure-scripting/index.md
index fc9160556f..4b4196bddc 100644
--- a/docs/cn/sql-reference/30-stored-procedure-scripting/index.md
+++ b/docs/cn/sql-reference/30-stored-procedure-scripting/index.md
@@ -3,7 +3,7 @@ title: 存储过程与 SQL 脚本
slug: /stored-procedure-scripting/
---
-Databend 中的存储过程(Stored Procedure)允许你将 SQL 逻辑打包并在服务器端运行,同时可使用控制流(Control Flow)、变量(Variable)、游标(Cursor)和动态语句(Dynamic Statement)。本页介绍如何创建存储过程并编写其内联脚本。
+Databend 中的存储过程(Stored Procedure)允许您将运行在服务器上的 SQL 逻辑打包,并可以访问控制流(Control Flow)、变量(Variables)、游标(Cursors)和动态语句(Dynamic Statements)。本页将解释如何创建存储过程以及编写为其提供支持的内联脚本。
## 定义存储过程
@@ -14,23 +14,23 @@ LANGUAGE SQL
[COMMENT = '']
AS $$
BEGIN
- -- 声明与语句
+ -- 声明和语句
RETURN ;
- -- 或返回查询结果
+ -- 或者返回一个查询结果
-- RETURN TABLE();
END;
$$;
```
-| 组件 | 描述 |
-|-----------|-------------|
-| `` | 存储过程标识符,可省略模式限定。 |
-| ` ` | 使用 Databend 标量类型定义的输入参数,按值传递。 |
-| `RETURNS [NOT NULL]` | 声明逻辑返回类型;`NOT NULL` 强制非空。 |
-| `LANGUAGE SQL` | 当前仅支持 `SQL`。 |
-| `RETURN` / `RETURN TABLE` | 结束执行并返回标量或表结果。 |
+| 组件 | 描述 |
+|----------------------------|-------------------------------------------------------------------|
+| `` | 存储过程的标识符。模式限定是可选的。 |
+| ` ` | 使用 Databend 标量类型定义的输入参数。参数按值传递。 |
+| `RETURNS [NOT NULL]` | 声明逻辑返回类型。`NOT NULL` 强制返回非空响应。 |
+| `LANGUAGE SQL` | Databend 目前只接受 `SQL`。 |
+| `RETURN` / `RETURN TABLE` | 结束执行并提供标量或表格结果。 |
-使用 [`CREATE PROCEDURE`](/sql/sql-commands/ddl/procedure/create-procedure) 持久化定义,[`CALL`](/sql/sql-commands/ddl/procedure/call-procedure) 运行,[`DROP PROCEDURE`](/sql/sql-commands/ddl/procedure/drop-procedure) 删除。
+使用 [`CREATE PROCEDURE`](/sql/sql-commands/ddl/procedure/create-procedure) 持久化定义,使用 [`CALL`](/sql/sql-commands/ddl/procedure/call-procedure) 运行它,并使用 [`DROP PROCEDURE`](/sql/sql-commands/ddl/procedure/drop-procedure) 删除它。
### 最小示例
@@ -48,11 +48,11 @@ $$;
CALL PROCEDURE convert_kg_to_lb(10);
```
-## 存储过程内的语言基础
+## 存储过程中的语言基础
-### 声明部分
+### Declare 部分
-存储过程可在可执行部分前使用可选的 `DECLARE` 块初始化变量。
+存储过程(Stored Procedure)可以以一个可选的 `DECLARE` 块开始,用于在可执行部分之前初始化变量。
```sql
CREATE OR REPLACE PROCEDURE sp_with_declare()
@@ -70,11 +70,11 @@ $$;
CALL PROCEDURE sp_with_declare();
```
-`DECLARE` 部分支持 `LET` 的所有定义,包括 `RESULTSET` 和 `CURSOR` 声明;每项以分号结尾。
+`DECLARE` 部分接受与 `LET` 相同的定义,包括 `RESULTSET` 和 `CURSOR` 声明。每个项目后请使用分号。
### 变量与赋值
-使用 `LET` 声明变量或常量;重新赋值时省略 `LET`。
+使用 `LET` 声明变量或常量,省略 `LET` 可进行重新赋值。
```sql
CREATE OR REPLACE PROCEDURE sp_demo_variables()
@@ -85,8 +85,8 @@ BEGIN
LET total := 100;
LET rate := 0.07;
- total := total * rate; -- 乘以比率
- total := total + 5; -- 重新赋值
+ total := total * rate; -- 乘以利率
+ total := total + 5; -- 省略 LET 重新赋值
RETURN total;
END;
@@ -97,7 +97,7 @@ CALL PROCEDURE sp_demo_variables();
### 变量作用域
-变量作用域限定于所在块;内部块可遮蔽外部绑定,退出后恢复外部值。
+变量的作用域限定在封闭的代码块内。内部代码块可以遮蔽外部的绑定,当代码块退出时,外部的值会恢复。
```sql
CREATE OR REPLACE PROCEDURE sp_demo_scope()
@@ -109,7 +109,7 @@ BEGIN
LET summary := 'outer=' || threshold;
IF threshold > 0 THEN
- LET threshold := 5; -- 遮蔽外部值
+ LET threshold := 5; -- 遮蔽外部的值
summary := summary || ', inner=' || threshold;
END IF;
@@ -123,7 +123,7 @@ CALL PROCEDURE sp_demo_scope();
### 注释
-支持单行(`-- text`)与多行(`/* text */`)注释。
+存储过程支持单行(`-- text`)和多行(`/* text */`)注释。
```sql
CREATE OR REPLACE PROCEDURE sp_demo_comments()
@@ -136,8 +136,8 @@ BEGIN
LET tax_rate := 0.08;
/*
- 多行注释便于记录复杂逻辑。
- 下一行返回含税价格。
+ 多行注释对于记录复杂逻辑很有用。
+ 下面这行返回含税价格。
*/
RETURN price * (1 + tax_rate);
END;
@@ -148,10 +148,10 @@ CALL PROCEDURE sp_demo_comments();
### Lambda 表达式
-Lambda 表达式(Lambda Expression)定义可传递给数组函数或在查询中调用的内联逻辑,形式为 ` -> `;多参数时用括号包裹。表达式可含类型转换、条件逻辑,甚至引用过程变量。
+Lambda 表达式(Lambda Expressions)定义了可以传递给数组函数或在查询中调用的内联逻辑。它们遵循 ` -> ` 的形式(当提供多个参数时,用括号将参数括起来)。表达式可以包括类型转换、条件逻辑,甚至对存储过程变量的引用。
-- 在 SQL 语句中运行的 Lambda 内,用 `:variable_name` 引用过程变量。
-- `ARRAY_TRANSFORM`、`ARRAY_FILTER` 等函数会对输入数组的每个元素求值 Lambda。
+- 当 lambda 在 SQL 语句中运行时,使用 `:variable_name` 来引用 lambda 内部的存储过程变量。
+- `ARRAY_TRANSFORM` 和 `ARRAY_FILTER` 等函数会对输入数组中的每个元素评估 lambda。
```sql
CREATE OR REPLACE PROCEDURE sp_demo_lambda_array()
@@ -168,7 +168,7 @@ $$;
CALL PROCEDURE sp_demo_lambda_array();
```
-Lambda 也可出现在过程执行的查询中。
+Lambda 表达式也可以出现在由存储过程执行的查询中。
```sql
CREATE OR REPLACE PROCEDURE sp_demo_lambda_query()
@@ -188,7 +188,7 @@ $$;
CALL PROCEDURE sp_demo_lambda_query();
```
-在 SQL 上下文中,通过在变量名前加 `:` 捕获过程变量。
+当 lambda 在 SQL 语句上下文中运行时,可以通过在存储过程变量前加上 `:` 来捕获它们。
```sql
CREATE OR REPLACE PROCEDURE sp_lambda_filter()
@@ -206,7 +206,7 @@ $$;
CALL PROCEDURE sp_lambda_filter();
```
-也可在 Lambda 体内放置复杂表达式,如 `CASE` 逻辑。
+您还可以在 lambda 主体内部放置复杂的表达式,例如 `CASE` 逻辑。
```sql
CREATE OR REPLACE PROCEDURE sp_lambda_case()
@@ -229,11 +229,11 @@ $$;
CALL PROCEDURE sp_lambda_case();
```
-## 控制流
+## 控制流(Control Flow)
### IF 语句
-使用 `IF ... ELSEIF ... ELSE ... END IF;` 在过程内分支。
+在存储过程内部使用 `IF ... ELSEIF ... ELSE ... END IF;` 进行分支。
```sql
CREATE OR REPLACE PROCEDURE sp_evaluate_score(score INT)
@@ -256,7 +256,7 @@ CALL PROCEDURE sp_evaluate_score(82);
### CASE 表达式
-`CASE` 表达式可替代嵌套 `IF`。
+`CASE` 表达式为嵌套的 `IF` 语句提供了另一种选择。
```sql
CREATE OR REPLACE PROCEDURE sp_membership_discount(level STRING)
@@ -275,9 +275,9 @@ $$;
CALL PROCEDURE sp_membership_discount('silver');
```
-### Range `FOR`
+### 范围 `FOR`
-基于范围的循环从下限迭代到上限(含上限)。可选 `REVERSE` 关键字反向遍历。
+基于范围的循环从下限迭代到上限(包含上限)。使用可选的 `REVERSE` 关键字可以反向遍历范围。
```sql
CREATE OR REPLACE PROCEDURE sp_sum_range(start_val INT, end_val INT)
@@ -296,7 +296,7 @@ $$;
CALL PROCEDURE sp_sum_range(1, 5);
```
-正向步进时下限须 ≤ 上限。
+范围循环要求在向前步进时,下限小于或等于上限。
```sql
CREATE OR REPLACE PROCEDURE sp_reverse_count(start_val INT, end_val INT)
@@ -317,7 +317,7 @@ CALL PROCEDURE sp_reverse_count(1, 5);
#### `FOR ... IN` 查询
-直接遍历查询结果;循环变量以字段形式暴露列。
+直接遍历查询的结果。循环变量将列作为字段暴露出来。
```sql
CREATE OR REPLACE PROCEDURE sp_sum_query(limit_rows INT)
@@ -336,7 +336,7 @@ $$;
CALL PROCEDURE sp_sum_query(5);
```
-`FOR` 也可遍历先前声明的 RESULTSET 变量或 CURSOR(见[使用查询结果](#working-with-query-results))。
+`FOR` 也可以遍历先前声明的结果集变量或游标(请参阅[处理查询结果](#working-with-query-results))。
### `WHILE`
@@ -404,9 +404,9 @@ $$;
CALL PROCEDURE sp_retry_counter(5);
```
-### Break 与 Continue
+### Break 和 Continue
-使用 `BREAK` 提前退出循环,使用 `CONTINUE` 跳过本次迭代。
+使用 `BREAK` 提前退出循环,使用 `CONTINUE` 跳到下一次迭代。
```sql
CREATE OR REPLACE PROCEDURE sp_break_example(limit_val INT)
@@ -435,13 +435,13 @@ $$;
CALL PROCEDURE sp_break_example(5);
```
-使用 `BREAK