无法使用名为订单的字段将 JSON 保存到数据库 (NiFi)
Unable to save JSON to database with field named as order (NiFi)
我有一个 JSON 文件:
[ {
"Order" : "Nestle billboard 100%x250",
"Country" : "Russia",
"Order_ID" : 287259619,
"Country_ID" : 243,
"Order_lifetime_impressions" : "3385377",
"Total_unique_visitors" : "1090850",
"Total_reach_impressions" : "3385525",
"Average_impressions_unique_visitor" : 3.1,
"Date" : "2021-07-01"
}, {
"Order" : "Nestle_june_july 2021_ mob 300x250",
"Country" : "Russia",
"Order_ID" : 28734,
"Country_ID" : 263,
"Order_lifetime_impressions" : "1997022",
"Total_unique_visitors" : "1012116",
"Total_reach_impressions" : "1997036",
"Average_impressions_unique_visitor" : 1.97,
"Date" : "2021-07-01"
}]
和table具有相同的列名。我正在使用具有此配置的 PutDatabaseRecord
处理器:
当我尝试保存此文件时,出现错误。
ERROR: syntax error (at or near: ",") Position: 110
我将 table 和 json 中的列重命名为 order_name
并且处理器能够保存它。
但如果可以的话,我还是想把它保存为order
。
我真的不明白为什么会这样。是的,order
是 sql 的关键字,但它在 "
中。这是一个错误吗?如何在不重命名列的情况下修复它?
如果我将 Order
保留为 JSON 中的列,但更改数据库中的列名 - 也可以正常工作。但是当然,我无法将 Order
保存到这个重命名的列中。
Order 是一个保留字,您应该尽可能避免将它用作列名。 [1] [3]
如果绝对不能,则需要在 PutDatabaseRecord
处理器配置中将 Quote Column Identifiers
属性 设置为 True
。 [2]
我有一个 JSON 文件:
[ {
"Order" : "Nestle billboard 100%x250",
"Country" : "Russia",
"Order_ID" : 287259619,
"Country_ID" : 243,
"Order_lifetime_impressions" : "3385377",
"Total_unique_visitors" : "1090850",
"Total_reach_impressions" : "3385525",
"Average_impressions_unique_visitor" : 3.1,
"Date" : "2021-07-01"
}, {
"Order" : "Nestle_june_july 2021_ mob 300x250",
"Country" : "Russia",
"Order_ID" : 28734,
"Country_ID" : 263,
"Order_lifetime_impressions" : "1997022",
"Total_unique_visitors" : "1012116",
"Total_reach_impressions" : "1997036",
"Average_impressions_unique_visitor" : 1.97,
"Date" : "2021-07-01"
}]
和table具有相同的列名。我正在使用具有此配置的 PutDatabaseRecord
处理器:
当我尝试保存此文件时,出现错误。
ERROR: syntax error (at or near: ",") Position: 110
我将 table 和 json 中的列重命名为 order_name
并且处理器能够保存它。
但如果可以的话,我还是想把它保存为order
。
我真的不明白为什么会这样。是的,order
是 sql 的关键字,但它在 "
中。这是一个错误吗?如何在不重命名列的情况下修复它?
如果我将 Order
保留为 JSON 中的列,但更改数据库中的列名 - 也可以正常工作。但是当然,我无法将 Order
保存到这个重命名的列中。
Order 是一个保留字,您应该尽可能避免将它用作列名。 [1] [3]
如果绝对不能,则需要在 PutDatabaseRecord
处理器配置中将 Quote Column Identifiers
属性 设置为 True
。 [2]