Oracle Database 节点#
使用 Oracle Database 节点在 Oracle Database 中自动化工作,并将 Oracle Database 与其他应用程序集成。n8n 内置了对广泛的 Oracle Database 功能的支持,包括执行 SQL 语句、从 Oracle Database 获取、插入、更新或删除数据。此节点内部使用 node-oracledb 驱动程序。
在此页面上,您将找到 Oracle Database 节点支持的操作列表以及更多资源的链接。
Note
有关设置身份验证的指导,请参阅 Oracle Database 凭据。
需要 Oracle Database 19c 或更高版本。 对于 thick 模式,使用 Oracle Client Libraries 19c 或更高版本。
Operations 操作#
- Delete 删除:删除整个表或表中的行
- Execute SQL 执行 SQL:执行 SQL 语句
- Insert 插入:在表中插入行
- Insert or Update 插入或更新:在表中插入或更新行
- Select 选择:从表中选择行
- Update 更新:更新表中的行
Delete 删除#
使用此操作删除整个表或表中的行。
输入以下参数:
- Credential to connect with 连接凭据:创建或选择现有的 Oracle Database 凭据。
- Operation 操作:选择 Delete 删除。
- Schema 模式:选择包含您要操作的表的模式。选择 From list 从列表中从下拉列表中选择模式,或选择 By Name 按名称输入模式名称。
- Table 表:选择您要操作的表。选择 From list 从列表中从下拉列表中选择表,或选择 By Name 按名称输入表名称。
- Command 命令:要执行的删除操作:
- Truncate 截断:删除表的数据但保留表的结构。
- Delete 删除:删除与"Select Rows 选择行"条件匹配的行。如果您不选择任何内容,Oracle Database 将删除所有行。
- Select Rows 选择行:定义 Column 列、Operator 操作符和 Value 值以匹配行。值可以使用表达式或字符串以 JSON 形式传递。
- Combine Conditions 组合条件:如何组合"Select Rows 选择行"中的条件。AND 与要求所有条件都为真,而 OR 或至少需要一个条件为真。
- Drop 删除表:永久删除表的数据和结构。
Delete 选项#
- Auto Commit 自动提交:当此属性设置为 true 时,当前连接中的事务将在语句执行结束时自动提交。
- Statement Batching 语句批处理:向数据库发送语句的方式:
- Single Statement 单个语句:为所有传入项使用单个语句。
- Independently 独立执行:为每个传入的执行项执行一个语句。
- Transaction 事务:在事务中执行所有语句。如果发生故障,Oracle Database 将回滚所有更改。
Execute SQL 执行 SQL#
使用此操作执行 SQL 语句。
输入以下参数:
- Credential to connect with 连接凭据:创建或选择现有的 Oracle Database 凭据。
- Operation 操作:选择 Execute SQL 执行 SQL。
- Statement 语句:要执行的 SQL 语句。您可以使用 n8n 表达式和位置参数(如
:1、:2)或命名参数(如:name、:id)与使用绑定参数一起使用。 要运行 PL/SQL 过程,例如demo,您可以使用:1 2 3
BEGIN demo; END;
Execute Statement 选项#
- Auto Commit 自动提交:当此属性设置为 true 时,当前连接中的事务将在语句执行结束时自动提交。
- Bind Variable Placeholder Values 绑定变量占位符值:输入语句中使用的绑定参数的值使用绑定参数。
- Output Numbers As String 将数字输出为字符串:指示是否应将数字作为字符串检索。
- Fetch Array Size 提取数组大小:此属性是一个数字,用于设置从 Oracle Database 提取查询行的内部缓冲区的大小。更改它可能会影响查询性能,但不会影响返回给应用程序的行数。
- Number of Rows to Prefetch 预取行数:此属性是一个查询调优选项,用于设置底层 Oracle 驱动程序在查询的内部初始语句执行阶段提取的额外行数。
Insert 插入#
使用此操作在表中插入行。
输入以下参数:
- Credential to connect with 连接凭据:创建或选择现有的 Oracle Database 凭据。
- Operation 操作:选择 Insert 插入。
- Schema 模式:选择包含您要操作的表的模式。选择 From list 从列表中从下拉列表中选择模式,或选择 By Name 按名称输入模式名称。
- Table 表:选择您要操作的表。选择 From list 从列表中从下拉列表中选择表,或选择 By Name 按名称输入表名称。
- Mapping Column Mode 映射列模式:如何将列名映射到传入数据:
- Map Each Column Manually 手动映射每列:选择用于每列的值使用 n8n 表达式作为绑定值。
- Map Automatically 自动映射:自动将传入数据映射到 Oracle Database 中匹配的列名。要使此功能生效,传入数据字段名称必须与 Oracle Database 中的列名匹配。如有必要,请考虑在此节点之前使用编辑字段(set)节点根据需要调整格式。
Insert 选项#
- Auto Commit 自动提交:当此属性设置为 true 时,当前连接中的事务将在语句执行结束时自动提交。
- Output Columns 输出列:选择要输出的列。您可以从可用列列表中选择或使用表达式指定 ID。
- Statement Batching 语句批处理:向数据库发送语句的方式:
- Single Statement 单个语句:为所有传入项使用单个语句。
- Independently 独立执行:为每个传入的执行项执行一个语句。
- Transaction 事务:在事务中执行所有语句。如果发生故障,Oracle Database 将回滚所有更改。
Insert or Update 插入或更新#
使用此操作在表中插入或更新行。
输入以下参数:
- Credential to connect with 连接凭据:创建或选择现有的 Oracle Database 凭据。
- Operation 操作:选择 Insert or Update 插入或更新。
- Schema 模式:选择包含您要操作的表的模式。选择 From list 从列表中从下拉列表中选择模式,或选择 By Name 按名称输入模式名称。
- Table 表:选择您要操作的表。选择 From list 从列表中从下拉列表中选择表,或选择 By Name 按名称输入表名称。
- Mapping Column Mode 映射列模式:如何将列名映射到传入数据:
- Map Each Column Manually 手动映射每列:选择用于每列的值使用 n8n 表达式作为绑定值。
- Map Automatically 自动映射:自动将传入数据映射到 Oracle Database 中匹配的列名。要使此功能生效,传入数据字段名称必须与 Oracle Database 中的列名匹配。如有必要,请考虑在此节点之前使用编辑字段(set)节点根据需要调整格式。
Insert or Update 选项#
- Auto Commit 自动提交:当此属性设置为 true 时,当前连接中的事务将在语句执行结束时自动提交。
- Output Columns 输出列:选择要输出的列。您可以从可用列列表中选择或使用表达式指定 ID。
- Statement Batching 语句批处理:向数据库发送语句的方式:
- Single Statement 单个语句:为所有传入项使用单个语句。
- Independently 独立执行:为每个传入的执行项执行一个语句。
- Transaction 事务:在事务中执行所有语句。如果发生故障,Oracle Database 将回滚所有更改。
Select 选择#
使用此操作选择表中的行。
输入以下参数:
- Credential to connect with 连接凭据:创建或选择现有的 Oracle Database 凭据。
- Operation 操作:选择 Select 选择。
- Schema 模式:选择包含您要操作的表的模式。选择 From list 从列表中从下拉列表中选择模式,或选择 By Name 按名称输入模式名称。
- Table 表:选择您要操作的表。选择 From list 从列表中从下拉列表中选择表,或选择 By Name 按名称输入表名称。
- Return All 返回全部:是返回所有结果还是仅返回给定限制的结果。
- Limit 限制:当 Return All 返回全部禁用时返回的最大项数。
- Select Rows 选择行:设置选择行的条件。定义 Column 列、Operator 操作符和 Value 值(作为
json)以匹配行。 Value 值可能因类型而异 — 例如在固定模式下:- 字符串:"hello"、hellowithoutquotes、"hello with space"
- 数字:12
- JSON:{ "key": "val" }
如果您不选择任何内容,Oracle Database 将选择所有行。 - Combine Conditions 组合条件:如何组合 Select Rows 选择行中的条件。AND 与要求所有条件都为真,而 OR 或至少需要一个条件为真。 - Sort 排序:选择如何对选定的行进行排序。从列表或按 ID 选择 Column 列,以及排序 Direction 方向。
Select 选项#
- Auto Commit 自动提交:当此属性设置为 true 时,当前连接中的事务将在语句执行结束时自动提交。
- Output Numbers As String 将数字输出为字符串:指示是否应将数字作为字符串检索。
- Fetch Array Size 提取数组大小:此属性是一个数字,用于设置从 Oracle Database 提取查询行的内部缓冲区的大小。更改它可能会影响查询性能,但不会影响返回给应用程序的行数。
- Number of Rows to Prefetch 预取行数:此属性是一个查询调优选项,用于设置底层 Oracle 驱动程序在查询的内部初始语句执行阶段提取的额外行数。
Update 更新#
使用此操作更新表中的行。
输入以下参数:
- Credential to connect with 连接凭据:创建或选择现有的 Oracle Database 凭据。
- Operation 操作:选择 Update 更新。
- Schema 模式:选择包含您要操作的表的模式。选择 From list 从列表中从下拉列表中选择模式,或选择 By Name 按名称输入模式名称。
- Table 表:选择您要操作的表。选择 From list 从列表中从下拉列表中选择表,或选择 By Name 按名称输入表名称。
- Mapping Column Mode 映射列模式:如何将列名映射到传入数据:
- Map Each Column Manually 手动映射每列:选择用于每列的值使用 n8n 表达式作为绑定值。
- Map Automatically 自动映射:自动将传入数据映射到 Oracle Database 中匹配的列名。要使此功能生效,传入数据字段名称必须与 Oracle Database 中的列名匹配。如有必要,请考虑在此节点之前使用编辑字段(set)节点根据需要调整格式。
Update 选项#
- Auto Commit 自动提交:当此属性设置为 true 时,当前连接中的事务将在语句执行结束时自动提交。
- Output Columns 输出列:选择要输出的列。您可以从可用列列表中选择或使用表达式指定 ID。
- Statement Batching 语句批处理:向数据库发送语句的方式:
- Single Statement 单个语句:为所有传入项使用单个语句。
- Independently 独立执行:为每个传入的执行项执行一个语句。
- Transaction 事务:在事务中执行所有语句。如果发生故障,Oracle Database 将回滚所有更改。
相关资源#
有关服务的更多信息,请参阅 SQL Language Reference。
有关 node-oracledb 驱动程序的更多信息,请参阅 node-oracledb 文档。
使用绑定参数#
在创建要在 Oracle 数据库实例上运行的语句时,您可以使用 Options 选项部分中的 Bind Variable Placeholder Values 绑定变量占位符值字段将数据加载到语句中。n8n 会对语句参数中的数据进行清理,从而防止 SQL 注入。
例如,您想要按颜色查找特定的水果。给定以下输入数据:
1 2 3 4 5 6 7 8 9 10 11 12 | |
您可以编写如下语句:
1 | |
然后在 Bind Variable Placeholder Values 绑定变量占位符值中,提供要使用的字段值。您可以提供固定值或表达式。对于此示例,使用表达式以便节点可以依次从每个输入项中提取颜色:
1 2 | |
使用 n8n 表达式作为绑定值#
对于 Values to Send 要发送的值,您可以使用 n8n 表达式提供输入。以下是不同数据类型的示例 — 您可以输入常量值或引用先前项中的字段($json):
JSON#
- 常量:
{{ { k1: "v1", k2: "v2" } }} - 从先前的项:
{{ $json.COL_JSON }}
VECTOR#
- 常量:
{{ [1, 2, 3, 4.5] }} - 从先前的项:
{{ $json.COL_VECTOR }}
BLOB#
- 常量:
{{ [94, 87, 34] }}或{{ ' BLOB data string' }} - 从先前的项:
{{ $json.COL_BLOB }}
RAW#
- 常量:
{{ [94, 87, 34] }} - 从先前的项:
{{ $json.COL_RAW }}
BOOLEAN#
- 常量:
{{ true }} - 从先前的项:
{{ $json.COL_BOOLEAN }}
NUMBER#
- 常量:
1234 - 从先前的项:
{{ $json.COL_NUMBER }}
VARCHAR#
- 常量:
' Hello World ' - 从先前的项:
{{ $json.COL_CHAR }}
这些示例假设 JSON 键(例如 COL_JSON, COL_VECTOR)直接映射到相应的 SQL 列类型。