From ed8390fa7976920bc1b9716db88d021cf6f90306 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 23 Oct 2025 01:25:47 +0000 Subject: [PATCH 01/12] [INIT] Start translation to Simplified-Chinese --- .translation-init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.translation-init b/.translation-init index 1e230987a9..f70d6745e6 100644 --- a/.translation-init +++ b/.translation-init @@ -1 +1 @@ -Translation initialization: 2025-10-22T10:47:38.215216 +Translation initialization: 2025-10-23T01:25:46.633835 From a1d5e83f3eb3abf9af05f5c8d998dd2080463a0a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 23 Oct 2025 01:26:51 +0000 Subject: [PATCH 02/12] =?UTF-8?q?=F0=9F=8C=90=20Translate=20stored-procedu?= =?UTF-8?q?re.md=20to=20Simplified-Chinese?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/cn/guides/54-query/02-advanced/stored-procedure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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..6e5d37b878 100644 --- a/docs/cn/guides/54-query/02-advanced/stored-procedure.md +++ b/docs/cn/guides/54-query/02-advanced/stored-procedure.md @@ -19,7 +19,7 @@ sidebar_position: 3 SET enable_experimental_procedure = 1; ``` -- 存储过程以字符串形式返回结果,无论指定的返回类型是什么,都不会对返回的值强制执行声明的类型。 +- 存储过程以字符串形式返回结果,无论指定的返回类型是什么,都不会对返回值强制执行声明的类型。 ## 管理存储过程 From b970b570ad49aa18e934df29d44e393587ef2b57 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 23 Oct 2025 01:27:04 +0000 Subject: [PATCH 03/12] =?UTF-8?q?=F0=9F=8C=90=20Translate=20stored-procedu?= =?UTF-8?q?re.md=20to=20Simplified-Chinese?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/cn/sql-reference/00-sql-reference/index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/cn/sql-reference/00-sql-reference/index.md b/docs/cn/sql-reference/00-sql-reference/index.md index 05832f241a..0649f6b988 100644 --- a/docs/cn/sql-reference/00-sql-reference/index.md +++ b/docs/cn/sql-reference/00-sql-reference/index.md @@ -3,12 +3,12 @@ title: SQL 参考 slug: '/' --- -欢迎来到 SQL 参考——您快速掌握 Databend 核心功能的指南! +欢迎来到 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 脚本语言,包括变量、控制流、结果处理以及存储过程(Stored Procedures)中的动态执行。 \ No newline at end of file From 277d0ab0bb7cdd743668c43389b21826a527ce31 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 23 Oct 2025 01:27:49 +0000 Subject: [PATCH 04/12] =?UTF-8?q?=F0=9F=8C=90=20Translate=20stored-procedu?= =?UTF-8?q?re.md=20to=20Simplified-Chinese?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../10-sql-commands/00-ddl/18-procedure/index.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) 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..f7c2fd59bb 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,16 +1,16 @@ --- -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) | 创建新的存储过程 | +| [DROP PROCEDURE](drop-procedure.md) | 删除存储过程 | +| [CALL](call-procedure.md) | 执行存储过程 | ## 过程信息 @@ -20,9 +20,9 @@ title: 存储过程 | [SHOW PROCEDURES](show-procedures.md) | 列出当前数据库中的所有存储过程 | :::note -Databend 中的存储过程(Stored Procedure)允许您将一系列 SQL 语句封装到一个可重用的单元中,该单元可以作为单个命令执行,从而提高代码的组织性和可维护性。 +Databend 中的存储过程允许您将一系列 SQL 语句封装成可重用的单元,可作为单个命令执行,从而提升代码的组织性和可维护性。 ::: ## 延伸阅读 -探索 [存储过程与 SQL 脚本](/sql/stored-procedure-scripting/) 获取完整的语言参考,包括变量处理、控制流、游标(Cursor)以及在过程中的动态 SQL 使用。 \ No newline at end of file +探索[存储过程与 SQL 脚本](/sql/stored-procedure-scripting/)以获取完整的语言参考,包括变量处理、控制流、游标以及存储过程中的动态 SQL 用法。 \ No newline at end of file From 568bcc1a7cd073c143eaf6fcf77f0fa525a912e5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 23 Oct 2025 01:28:26 +0000 Subject: [PATCH 05/12] =?UTF-8?q?=F0=9F=8C=90=20Translate=20stored-procedu?= =?UTF-8?q?re.md=20to=20Simplified-Chinese?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../50-administration-cmds/execute-immediate.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/cn/sql-reference/10-sql-commands/50-administration-cmds/execute-immediate.md b/docs/cn/sql-reference/10-sql-commands/50-administration-cmds/execute-immediate.md index 2ab8f63669..90dd4e0f82 100644 --- a/docs/cn/sql-reference/10-sql-commands/50-administration-cmds/execute-immediate.md +++ b/docs/cn/sql-reference/10-sql-commands/50-administration-cmds/execute-immediate.md @@ -5,7 +5,7 @@ import FunctionDescription from '@site/src/components/FunctionDescription'; -执行一个 SQL 脚本。关于如何为 Databend 编写 SQL 脚本,请参阅 [存储过程与 SQL 脚本](/sql/stored-procedure-scripting/)。 +执行 SQL 脚本。关于如何为 Databend 编写 SQL 脚本,请参阅[存储过程与 SQL 脚本](/sql/stored-procedure-scripting/)。 ## 语法 @@ -14,15 +14,15 @@ EXECUTE IMMEDIATE $$ BEGIN RETURN ; -- 用于返回单个值 - -- OR - RETURN TABLE(); -- 用于返回一个表 + -- 或者 + RETURN TABLE(); -- 用于返回表 END; $$; ``` ## 示例 -以下示例使用循环,通过从 -1 到 2 的迭代累加 sum,最终结果为 2: +此示例使用循环,通过从 -1 迭代到 2 来递增 sum,结果为 sum (2): ```sql EXECUTE IMMEDIATE $$ @@ -44,7 +44,7 @@ $$; └────────┘ ``` -以下示例返回一个包含列 `1 + 1` 且值为 2 的表: +以下示例返回一个包含列 `1 + 1` 和值 2 的表: ```sql EXECUTE IMMEDIATE $$ From d420633dddeed832a649ecb0e503936c5f8200fd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 23 Oct 2025 01:28:45 +0000 Subject: [PATCH 06/12] =?UTF-8?q?=F0=9F=8C=90=20Translate=20stored-procedu?= =?UTF-8?q?re.md=20to=20Simplified-Chinese?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../10-semi-structured-functions/1-array/array-filter.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/1-array/array-filter.md b/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/1-array/array-filter.md index fc2524f5db..f22fcd0309 100644 --- a/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/1-array/array-filter.md +++ b/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/1-array/array-filter.md @@ -4,9 +4,9 @@ title: ARRAY_FILTER import FunctionDescription from '@site/src/components/FunctionDescription'; - + -根据指定的 Lambda 表达式(Lambda Expression)筛选 JSON 数组中的元素,仅返回满足条件的元素。有关 Lambda 表达式的更多信息,请参阅 [Lambda 表达式](/sql/stored-procedure-scripting/#lambda-expressions)。 +根据指定的 Lambda 表达式筛选 JSON 数组中的元素,仅返回满足条件的元素。有关 Lambda 表达式的更多信息,请参见 [Lambda 表达式](/sql/stored-procedure-scripting/#lambda-expressions)。 ## 语法 From 01c4222fb632f6b7df95aa3775bbdd97005afb83 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 23 Oct 2025 01:29:17 +0000 Subject: [PATCH 07/12] =?UTF-8?q?=F0=9F=8C=90=20Translate=20stored-procedu?= =?UTF-8?q?re.md=20to=20Simplified-Chinese?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../10-semi-structured-functions/1-array/array-reduce.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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..f0381d01a5 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( From 050929a0216f3a79b944e1964eabc6d1b30a6aa7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 23 Oct 2025 01:29:29 +0000 Subject: [PATCH 08/12] =?UTF-8?q?=F0=9F=8C=90=20Translate=20stored-procedu?= =?UTF-8?q?re.md=20to=20Simplified-Chinese?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../10-semi-structured-functions/1-array/array-transform.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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..935821c80c 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)。 ## 语法 From 1bbc59c6740e094e48f91c29d8fc37e1ea53c7cb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 23 Oct 2025 01:29:46 +0000 Subject: [PATCH 09/12] =?UTF-8?q?=F0=9F=8C=90=20Translate=20stored-procedu?= =?UTF-8?q?re.md=20to=20Simplified-Chinese?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../10-semi-structured-functions/3-map/map-filter.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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..3160faf768 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 对象中的键值对。 ## 语法 @@ -15,11 +15,11 @@ MAP_FILTER(, (, ) -> ) ## 返回类型 -返回仅包含满足指定条件的键值对的 JSON 对象。 +返回一个仅包含满足指定条件的键值对的 JSON 对象。 ## 示例 -以下示例从 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; From 4b2727029088364a562a2e33ab9064aeb44a6630 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 23 Oct 2025 01:30:14 +0000 Subject: [PATCH 10/12] =?UTF-8?q?=F0=9F=8C=90=20Translate=20stored-procedu?= =?UTF-8?q?re.md=20to=20Simplified-Chinese?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../10-semi-structured-functions/3-map/map-transform-keys.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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..6f16fab740 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; From 245f38ac4eaeb3637d492bf6ca048a6aa045aec5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 23 Oct 2025 01:30:35 +0000 Subject: [PATCH 11/12] =?UTF-8?q?=F0=9F=8C=90=20Translate=20stored-procedu?= =?UTF-8?q?re.md=20to=20Simplified-Chinese?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../10-semi-structured-functions/3-map/map-transform-values.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/3-map/map-transform-values.md b/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/3-map/map-transform-values.md index e4865019b6..e331cd8348 100644 --- a/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/3-map/map-transform-values.md +++ b/docs/cn/sql-reference/20-sql-functions/10-semi-structured-functions/3-map/map-transform-values.md @@ -1,6 +1,7 @@ --- title: MAP_TRANSFORM_VALUES --- + import FunctionDescription from '@site/src/components/FunctionDescription'; From 0aec47d07d7e9827b27147c9a623640e4a8ad745 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 23 Oct 2025 01:33:57 +0000 Subject: [PATCH 12/12] =?UTF-8?q?=F0=9F=8C=90=20Translate=20stored-procedu?= =?UTF-8?q?re.md=20to=20Simplified-Chinese?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../30-stored-procedure-scripting/index.md | 108 +++++++++--------- 1 file changed, 54 insertions(+), 54 deletions(-) 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..8f11657825 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` 块初始化变量。 +存储过程可以以一个可选的 `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 表达式定义了可以传递给数组函数或在查询中调用的内联逻辑。它们遵循 ` -> ` 的形式(当提供多个参数时,用括号将参数括起来)。表达式可以包括类型转换、条件逻辑,甚至对存储过程变量的引用。 -- 在 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() @@ -233,7 +233,7 @@ CALL PROCEDURE sp_lambda_case(); ### 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