【发布时间】:2023-10-27 16:10:02
【问题描述】:
我的数据库组件有如下配置
<db:insert config-ref="Oracle_Configuration" bulkMode="true" doc:name="Database">
<db:dynamic-query><![CDATA[#[flowVars.dbquery]]]></db:dynamic-query>
</db:insert>
我已经声明了“dbquery”变量如下
<set-variable variableName="dbquery" value="INSERT INTO WBUSER.EMP VALUES('#[payload.FullName]','#[payload.SerialNumber]')" doc:name="Variable"/>
在运行应用程序时,插入数据库的值为“#[payload.FullName] 和#[payload.SerialNumber]。
但是当我的数据库组件具有以下配置时,FullName 和 SerialNumber 的实际值被插入到数据库中。
<db:insert config-ref="Oracle_Configuration" bulkMode="true" doc:name="Database">
<db:dynamic-query><![CDATA[INSERT INTO WBUSER.EMP VALUES('#[payload.FullName]','#[payload.SerialNumber]')]]></db:dynamic-query>
</db:insert>
这里 FullName 和 SerialNumber 不是变量。它们是有效负载中列表的列名,如 [{FullName=yo, SerialNumber=129329}, {FullName=he, SerialNumber=129329}]。 谁能告诉我这里的区别。有没有一种方法可以像之前的情况一样只使用变量来实现数据库插入?
【问题讨论】: