Mule:Exact db:select 源属性的用法
Mule:Exact usage of db:select source attribute
具有作为 AMQP 连接器的入站流
<flow name="flow1">
<amqp:inbound-endpoint responseTimeout="10000" exchangeName="INPUTEXCHANGE" queueName="INPUTQUEUE" routingKey="inputqueue" connector-ref="rabbitConnector" doc:name="AMQP"/>
<set-variable variableName="dataCount" value="0" doc:name="Variable"></set-variable>
<db:select config-ref="databaseConnector" target="#[flowVars.dataCount]" source="#{payload[0]['count(*)']}" doc:name="Select">
<db:parameterized-query><![CDATA[select count(*) from tablename]]></db:parameterized-query>
</db:select>
</flow>
当没有指定源时 dataCount=[{count(*)=10}] as db select returns 地图列表。 source 属性的正确值应该是多少,以便只有 10 被分配给 dataCount 变量。当指定 payload[0]['count(*)'] 时会给出一个错误,payload 是 byte[] 实际上是 AMQP 返回的 payload.
根据user guide,来源是:
The expression used to obtain the value used to calculate parameters. Default is empty, so parameters are calculated from the payload".
Source 用于"feed" select 语句参数,不用于post 处理结果。
因此删除 source
属性并计算 select 之后的流变量计数:
<set-variable variableName="selectResult" value="#[[]]" />
<db:select config-ref="databaseConnector" target="#[flowVars.selectResult]">
<db:parameterized-query><![CDATA[select count(*) from tablename]]></db:parameterized-query>
</db:select>
<set-variable variableName="dataCount"
value="#[flowVars.selectResult[0]['count(*)']]" />
具有作为 AMQP 连接器的入站流
<flow name="flow1">
<amqp:inbound-endpoint responseTimeout="10000" exchangeName="INPUTEXCHANGE" queueName="INPUTQUEUE" routingKey="inputqueue" connector-ref="rabbitConnector" doc:name="AMQP"/>
<set-variable variableName="dataCount" value="0" doc:name="Variable"></set-variable>
<db:select config-ref="databaseConnector" target="#[flowVars.dataCount]" source="#{payload[0]['count(*)']}" doc:name="Select">
<db:parameterized-query><![CDATA[select count(*) from tablename]]></db:parameterized-query>
</db:select>
</flow>
当没有指定源时 dataCount=[{count(*)=10}] as db select returns 地图列表。 source 属性的正确值应该是多少,以便只有 10 被分配给 dataCount 变量。当指定 payload[0]['count(*)'] 时会给出一个错误,payload 是 byte[] 实际上是 AMQP 返回的 payload.
根据user guide,来源是:
The expression used to obtain the value used to calculate parameters. Default is empty, so parameters are calculated from the payload".
Source 用于"feed" select 语句参数,不用于post 处理结果。
因此删除 source
属性并计算 select 之后的流变量计数:
<set-variable variableName="selectResult" value="#[[]]" />
<db:select config-ref="databaseConnector" target="#[flowVars.selectResult]">
<db:parameterized-query><![CDATA[select count(*) from tablename]]></db:parameterized-query>
</db:select>
<set-variable variableName="dataCount"
value="#[flowVars.selectResult[0]['count(*)']]" />