Skip to content

Oracle 数据库节点(Oracle Database node)#

使用 Oracle Database 节点可以在 Oracle 数据库中自动化工作,并将 Oracle 数据库与其他应用集成。n8n 内置支持多种 Oracle 数据库功能,包括执行 SQL 语句、从 Oracle 数据库中获取、插入、更新或删除数据。此节点内部使用 node-oracledb 驱动

🌐 Use the Oracle Database node to automate work in Oracle Database, and integrate Oracle Database with other applications. n8n has built-in support for a wide range of Oracle Database features which includes executing an SQL statement, fetching, inserting, updating or deleting data from Oracle Database. This node uses the node-oracledb driver internally.

本页列出了 Oracle Database 节点支持的操作列表以及更多资源的链接。

🌐 On this page, you'll find a list of operations the Oracle Database node supports and links to more resources.

/// 注意 请参考 Oracle 数据库凭证 以获取有关设置身份验证的指导。

需要 Oracle 数据库 19c 或更高版本。 对于像透明应用持续性(TAC)和分片这样的高级 Oracle 数据库功能,还需要 Oracle 客户端库 19c 或更高版本。 ///

操作(Operations)#

删除(Delete)#

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

🌐 Use this operation to delete an entire table or rows in a table.

请输入以下参数:

🌐 Enter these parameters:

  • 连接凭据:创建或选择现有的 Oracle 数据库凭据
  • 操作:选择删除
  • 架构:选择包含你要操作的表的架构。选择 从列表中 从下拉列表中选择架构,或选择 按名称 输入架构名称。
  • 表格:选择你想操作的表格。选择 从列表中 以从下拉列表中选择表格,或选择 按名称 输入表格名称。
  • 命令:要执行的删除操作:
    • 截断:删除表的数据,但保留表的结构。
    • 删除:删除符合“选择的行”条件的行。如果未选择任何内容,Oracle 数据库将删除所有行。
      • 选择行:定义一个运算符来匹配行。该值可以通过表达式或字符串以 JSON 形式传递。
      • 组合条件:如何在“选择行”中组合条件。AND要求所有条件都为真,而OR只要求至少有一个条件为真。
    • Drop:永久删除表的数据和结构。

删除选项(Delete options)#

  • 自动提交:当此属性设置为 true 时,当前连接中的事务将在语句执行结束时自动提交。
  • 语句批处理:向数据库发送语句的方式:
    • 单一报表:针对所有进项项目的单一报表。
    • 独立地:对每个传入的执行项执行一条语句。
    • 事务:在事务中执行所有语句。如果发生故障,Oracle 数据库将回滚所有更改。

执行 SQL(Execute SQL)#

使用此操作执行 SQL 语句。

🌐 Use this operation to execute an SQL statement.

请输入以下参数:

🌐 Enter these parameters:

  • 连接凭据:创建或选择现有的 Oracle 数据库凭据
  • 操作:执行 SQL 执行 SQL
  • 声明:要执行的 SQL 语句。你可以使用 n8n 表达式 和位置参数,如 :1:2,或命名参数,如 :name:id,与 使用绑定参数 一起使用。要运行 PL/SQL 存储过程,例如 demo,你可以使用:
1
2
3
BEGIN
  demo;
END;

执行语句选项(Execute Statement options)#

  • 自动提交:当此属性设置为 true 时,当前连接中的事务将在语句执行结束时自动提交。
  • 绑定变量占位符值:输入语句中使用的绑定参数的值 使用绑定参数
  • 将数字作为字符串输出:指示数字是否应作为字符串获取。
  • 获取数组大小:此属性是一个数字,用于设置从 Oracle 数据库获取查询行时使用的内部缓冲区的大小。更改它可能会影响查询性能,但不会影响返回给应用的行数。
  • 预取行数:此属性是一个查询调优选项,用于设置底层 Oracle 驱动程序在查询的内部初始语句执行阶段预取的额外行数。

插入(Insert)#

使用此操作在表中插入行。

🌐 Use this operation to insert rows in a table.

请输入以下参数:

🌐 Enter these parameters:

  • 连接凭据:创建或选择现有的 Oracle 数据库凭据
  • 操作:选择 插入
  • 架构:选择包含你要操作的表的架构。选择 从列表中 从下拉列表中选择架构,或选择 按名称 输入架构名称。
  • 表格:选择你想操作的表格。选择 从列表中 以从下拉列表中选择表格,或选择 按名称 输入表格名称。
  • 映射列模式:如何将列名映射到传入数据:
    • 手动映射每一列:选择每列要使用的值 使用 n8n 表达式绑定值
    • 自动映射:将传入的数据自动映射到 Oracle 数据库中匹配的列名。传入的数据字段名称必须与 Oracle 数据库中的列名相匹配才能生效。如有必要,请考虑在此节点之前使用 编辑字段(设置)节点 根据需要调整格式。

插入选项(Insert options)#

  • 自动提交:当此属性设置为 true 时,当前连接中的事务将在语句执行结束时自动提交。
  • 输出列:选择要输出的列。你可以从可用列列表中选择,或使用表达式指定列ID。
  • 语句批处理:向数据库发送语句的方式:
    • 单一报表:针对所有进项项目的单一报表。
    • 独立地:对每个传入的执行项执行一条语句。
    • 事务:在事务中执行所有语句。如果发生故障,Oracle 数据库将回滚所有更改。

插入或更新(Insert or Update)#

使用此操作在表中插入或更新行。

🌐 Use this operation to insert or update rows in a table.

请输入以下参数:

🌐 Enter these parameters:

  • 连接凭据:创建或选择现有的 Oracle 数据库凭据
  • 操作:选择插入或更新
  • 架构:选择包含你要操作的表的架构。选择 从列表中 从下拉列表中选择架构,或选择 按名称 输入架构名称。
  • 表格:选择你想操作的表格。选择 从列表中 以从下拉列表中选择表格,或选择 按名称 输入表格名称。
  • 映射列模式:如何将列名映射到传入数据:
    • 手动映射每一列:选择每列要使用的值 使用 n8n 表达式绑定值
    • 自动映射:将传入的数据自动映射到 Oracle 数据库中匹配的列名。传入的数据字段名称必须与 Oracle 数据库中的列名相匹配才能生效。如有必要,请考虑在此节点之前使用 编辑字段(设置)节点 根据需要调整格式。

插入或更新选项(Insert or Update options)#

  • 自动提交:当此属性设置为 true 时,当前连接中的事务将在语句执行结束时自动提交。
  • 输出列:选择要输出的列。你可以从可用列列表中选择,或使用表达式指定列ID。
  • 语句批处理:向数据库发送语句的方式:
    • 单一报表:针对所有进项项目的单一报表。
    • 独立地:对每个传入的执行项执行一条语句。
    • 事务:在事务中执行所有语句。如果发生故障,Oracle 数据库将回滚所有更改。

选择(Select)#

使用此操作选择表格中的行。

🌐 Use this operation to select rows in a table.

请输入以下参数:

🌐 Enter these parameters:

  • 连接凭据:创建或选择现有的 Oracle 数据库凭据
  • 操作:选择 选择
  • 架构:选择包含你要操作的表的架构。选择 从列表中 从下拉列表中选择架构,或选择 按名称 输入架构名称。
  • 表格:选择你想操作的表格。选择 从列表中 以从下拉列表中选择表格,或选择 按名称 输入表格名称。
  • 返回全部:是否返回所有结果,还是仅返回到指定的限制数。
  • 限制:当不返回全部时,要返回的最大项目数。
  • 选择行:设置选择行的条件。定义一个运算符(作为 json)来匹配行。可以根据类型有所不同——例如在固定模式下:
    • 字符串:"hello",hellowithoutquotes,"hello with space"
    • 数字:12
    • JSON: { "key": "val" }

如果你未选择任何内容,Oracle 数据库将选择所有行。

🌐 If you don't select anything, Oracle Database selects all rows.

  • 组合条件:如何在选择行中组合条件。AND要求所有条件都为真,而OR只要求至少一个条件为真。
  • 排序:选择如何对所选行进行排序。从列表中或通过ID选择一个,并选择排序的方向

选择选项(Select options)#

  • 自动提交:当此属性设置为 true 时,当前连接中的事务将在语句执行结束时自动提交。
  • 将数字作为字符串输出:指示数字是否应作为字符串获取。
  • 获取数组大小:此属性是一个数字,用于设置从 Oracle 数据库获取查询行时使用的内部缓冲区的大小。更改它可能会影响查询性能,但不会影响返回给应用的行数。
  • 预取行数:此属性是一个查询调优选项,用于设置底层 Oracle 驱动程序在查询的内部初始语句执行阶段预取的额外行数。

更新(Update)#

使用此操作更新表格中的行。

🌐 Use this operation to update rows in a table.

请输入以下参数:

🌐 Enter these parameters:

  • 连接凭据:创建或选择现有的 Oracle 数据库凭据
  • 操作:选择更新
  • 架构:选择包含你要操作的表的架构。选择 从列表中 从下拉列表中选择架构,或选择 按名称 输入架构名称。
  • 表格:选择你想操作的表格。选择 从列表中 以从下拉列表中选择表格,或选择 按名称 输入表格名称。
  • 映射列模式:如何将列名映射到传入数据:
    • 手动映射每一列:选择每列要使用的值 使用 n8n 表达式绑定值
    • 自动映射:将传入的数据自动映射到 Oracle 数据库中匹配的列名。传入的数据字段名称必须与 Oracle 数据库中的列名相匹配才能生效。如有必要,请考虑在此节点之前使用 编辑字段(设置)节点 根据需要调整格式。

更新选项(Update options)#

  • 自动提交:当此属性设置为 true 时,当前连接中的事务将在语句执行结束时自动提交。
  • 输出列:选择要输出的列。你可以从可用列列表中选择,或使用表达式指定列ID。
  • 语句批处理:向数据库发送语句的方式:
    • 单一报表:针对所有进项项目的单一报表。
    • 独立地:对每个传入的执行项执行一条语句。
    • 事务:在事务中执行所有语句。如果发生故障,Oracle 数据库将回滚所有更改。

有关此服务的更多信息,请参阅SQL 语言参考

🌐 Refer to SQL Language Reference for more information about the service.

有关 node-oracledb 驱动的更多信息,请参阅 node-oracledb 文档

🌐 Refer to node-oracledb documentation for more information about the node-oracledb driver.

使用绑定参数(Use bind parameters)#

在创建要在 Oracle 数据库实例上运行的语句时,可以使用 选项 部分中的 绑定变量占位符值 字段将数据加载到语句中。n8n 会对语句参数中的数据进行清理,从而防止 SQL 注入。

🌐 When creating a statement to run on an Oracle database instance, you can use the Bind Variable Placeholder Values field in the Options section to load data into the statement. n8n sanitizes data in statement parameters, which prevents SQL injection.

例如,你可能想根据颜色找到特定的水果。给定以下输入数据:

🌐 For example, you would want to find specific fruits by their color. Given the following input data:

 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"
    }
]

你可以编写如下语句:

🌐 You can write a statement like:

1
SELECT * FROM FRUITS WHERE COLOR = :col

然后在绑定变量占位符值中,提供要使用的字段值。你可以提供固定值或表达式。对于本例,使用表达式,这样节点可以依次从每个输入项中提取颜色:

🌐 Then in Bind Variable Placeholder Values, provide the field values to use. You can provide fixed values or expressions. For this example, use expressions so the node can pull the color from each input item in turn:

1
2
// fruits is an example table name
fruits, {{ $json.color }} 

使用 n8n 表达式作为绑定值(Use n8n Expressions for bind values)#

对于 要发送的值,你可以使用 n8n 表达式提供输入。下面是不同数据类型的示例——你可以输入常量值,也可以引用之前项目中的字段($json):

🌐 For Values to Send, you can provide inputs using n8n Expressions. Below are examples for different data types — you can either enter constant values or reference fields from previous items ($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 列类型。

🌐 These examples assume JSON keys (e.g. COL_JSON, COL_VECTOR) map directly to the respective SQL column types.