24.4. 关于 SQL 语句中更新数据的参数占位符和值


位于流中或完成简单集成的数据库连接可以执行更新数据的 SQL 语句。当您向集成添加数据库连接时,您可以指定要执行的 SQL 语句中的占位符参数。在执行期间,当输入参数值位于集合中时,连接可以执行批处理更新。

在 SQL 语句中指定参数

当您创建或编辑集成,并添加更新数据库的连接,您可以在 SQL 语句中指定连接在运行时执行的占位符参数,或者存储过程中将执行占位符。例如:

INSERT INTO TODO(task, completed) VALUES(:#param_1, :#param_2)
DELETE FROM TODO WHERE task LIKE :#param_3

要指定这些占位符的值,请在数据库连接前向流添加数据映射步骤。在数据映射步骤中,将适当的源数据字段映射到目标数据字段,例如,将源数据映射到 :#param_1,:#param_2, 和 :#param_3 target 字段。请参阅 添加数据映射程序步骤

使用一组参数值进行批量更新

在运行时,当数据库连接执行插入、删除或更新数据的 SQL 语句时,执行的 SQL 语句通常会指定一个或多个占位符参数,例如 :#task。执行此操作时,对连接的输入可以是一组参数或一组参数集,其中集合中的每个元素为对应的占位符参数定义一个值。

数据库连接的输入来自较早的连接,例如,HTTP 请求(Webhook)或发送到 REST API 服务的请求,用于 API 供应商集成。当输入是集合时,连接使用批处理模式来更新表。例如,考虑这个 SQL 语句:

insert into todo (task) values (:#task)

如果输入集合包含 3 个值,连接会插入三个记录,每个记录对应一个。现在考虑一个带有两个占位符参数的 SQL 语句:

insert into todo (task, completed) values (:#task, :#completed)

在执行此 SQL 语句的连接的输入中,数据组成规格可以指定单个元素,例如:

{"task": "write some docs", "completed": 0}

或者可以指定集合,例如:

[{"task": "write doc", "completed": 1},
 {"task": "publish doc", "completed": 0}]

当集合作为输入时,连接会对每个一组参数值执行插入操作一次。在本例中,连接向表中添加两个记录,分别对应于每组参数值。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.