Sql Nifi为插入约束生成了错误的列名
我使用Nife 1.13.2在Oracle和PostgresQL之间构建ETL过程 有一个用于从Oracle检索数据的ExecuteSQL处理器和一个用于将数据插入PostgresQL表的PutDatabaseRecord处理器。在PostgresQL的处理器中配置了INSERT\u IGNORE选项。两个表中键列的名称都是DOC_ID。但由于插入操作,出于某种原因,Nifi生成了列的错误名称,正如从下面的行中看到的:Sql Nifi为插入约束生成了错误的列名,sql,apache-nifi,Sql,Apache Nifi,我使用Nife 1.13.2在Oracle和PostgresQL之间构建ETL过程 有一个用于从Oracle检索数据的ExecuteSQL处理器和一个用于将数据插入PostgresQL表的PutDatabaseRecord处理器。在PostgresQL的处理器中配置了INSERT\u IGNORE选项。两个表中键列的名称都是DOC_ID。但由于插入操作,出于某种原因,Nifi生成了列的错误名称,正如从下面的行中看到的:ON CONFLICT(DOCID)DO NOTHING 以下是全部错误: F
ON CONFLICT(DOCID)DO NOTHING
以下是全部错误:
Failed to put Records to database for StandardFlowFileRecord[uuid=7ff8189a-2685-4f
9a-bab6-d0bc9b4f7ae0,claim=StandardContentClaim [resourceClaim=StandardResourceClaim[id=1623310567664-311, container=default, section=311], offset=604245, length=610377],offset=211592,name=7ff8189a-2685-4f9a-bab6-d0bc9b4f7ae0,size=6106].
Routing to failure.: java.sql.BatchUpdateException: Batch entry 0 INSERT INTO src.rtl_sales(doc_id, complete, out_sale_sum_disc, kpp_num, org_id, kpp_status, im) VALUES (1830335807, '2020-06-12 +03', '530.67'::numeric, 565900, 62, 4, NULL
) ON CONFLICT (DOCID) DO NOTHING was aborted: ERROR: column "docid" does not exist
以下是PostgresQL中的表:
以下是队列中FlowFile的一部分:
我或Nifi有什么问题?好的,所以在PutDatabaseRecord中它必须是
翻译字段名->False
:
提供您的PutDatabaseRecord configOK,我发现了问题,我将其发布在下面)