我创建了数据流,它将SQL服务器数据从数据库传输到nifi中的数据库并且有一个日期时间列,它还在源表中包含一些空值,现在我想将该具有日期时间值和空值的列同时传输到目标表中的日期时间列。我找不到正确的表达式将其放入更新属性处理器中。
我在更新过程中使用以下表达式:
sql.args.1.name : CR_LINE_CMTD_START_DTsql.args.1.type : 93sql.args.1.value :${CR_LINE_CMTD_START_DT:toDate("yyyy-MM-dd HH:mm:ss.SSS"(:toNumber((}
请帮助解决此问题
谢谢山 姆
出现空值或每次输入时是否出现错误?
在 UpdateAttribute 中有一个高级 UI(单击对话框左下角的"高级"按钮(,您可以在其中根据条件更新 sql.args.value.1 的值。因此,您可以使用 ${CR_LINE_CMTD_START_DT:notNull((} 作为一个条件,其中操作就是您上面的内容。您可以为 ${CR_LINE_CMTD_START_DT:isNull((} 添加一个条件,将值设置为 ${CR_LINE_CMTD_START_DT}(或者如果可以的话,可以将该值留空(。
有关高级用法的更多信息,请参阅 UpdateAttribute "其他详细信息"页面。同样从NiFi 1.2.0开始(在本回答时尚未发布(,NIFI-3206将为表达式语言添加一个ifElse((函数,这应该使内联更容易。