Skip to content

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 删除#

使用此操作删除整个表或表中的行。

输入以下参数:

  • 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
[
    {
        "FRUIT_ID": 1,
        "FRUIT_NAME": "Apple",
        "COLOR": "Red" 
    },
    {
        "FRUIT_ID": 2,
        "FRUIT_NAME": "Banana",
        "COLOR": "Yellow"
    }
]

您可以编写如下语句:

1
SELECT * FROM FRUITS WHERE COLOR = :col

然后在 Bind Variable Placeholder Values 绑定变量占位符值中,提供要使用的字段值。您可以提供固定值或表达式。对于此示例,使用表达式以便节点可以依次从每个输入项中提取颜色:

1
2
// fruits 是示例表名
fruits, {{ $json.color }} 

使用 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 列类型。