首页 > 解决方案 > 使用 PutSQL 插入 Oracle 表会返回 sql.generated.key 属性的 rowid 值,而不是生成的序列 id

问题描述

我们正在尝试将记录插入到 Oracle 表中PutSQL,并且属性Obtain Generated Keys设置为true。NiFiDBCPConnectionPool控制器服务配置为使用Oracle 12c,而 JDBC 为ojdbc8.jar.

属性的预期值sql.generated.key应该是数字,但越来越rowidAAJV6hAAAAAB/qFAAA

那么我们是否需要在 Oracle 端进行任何配置设置以返回生成的序列 id 而不是rowid

请注意,对于 PostgreSQL,同样的工作方式与预期相同!

标签: oracleplsqlapache-nifi

解决方案


据此,_

Oracle JDBC 驱动程序不会返回 id 列的值,而是返回 ROW_ID(标识特定行的伪列),以便您自己检索该值。

过去,Oracle 驱动程序是这样做的,因为以前的 Oracle 版本没有标识列。

所以我必须添加一个处理器来从rowid.


推荐阅读