基于条件的mule执行查询
我的问题是,我需要选择什么选项才能作为mule应用程序运行基于条件的mule执行查询,mule,Mule,我的问题是,我需要选择什么选项才能作为mule应用程序运行 <http:inbound-endpoint exchange-pattern="request-response" host="myhost" port="${port}" path="offcycle" doc:name="HTTP"/> <set-variable variableName="companies" value="${companies.torun}" doc:name="Var
<http:inbound-endpoint exchange-pattern="request-response" host="myhost" port="${port}" path="offcycle" doc:name="HTTP"/>
<set-variable variableName="companies" value="${companies.torun}" doc:name="Variable"/>
<db:insert config-ref="hrlites_Configuration" doc:name="Database" >
<db:dynamic-query>
insert into PAYRNUM (PAYGROUP,T2_PAYROLL_NUM,SEPCHK,NAME....)
select T2_SOURCE_COMPANY,T2_PAYGROUP_TYPE,...
from (
SELECT T2_SOURCE_COMPANY,T2_PAYGROUP_TYPE,PAY_END_DT,...
FROM CHK_STG2
WHERE COMPANY = #[flowVars.companies]
AND T2_PAYGROUP_TYPE = 'ZZ'
AND PAY_END_DT = '30/JUN/2013'
ORDER BY PAY_END_DT,
CASE WHEN T2_INVOICE_NBR LIKE 'IN%' then 1
WHEN T2_INVOICE_NBR LIKE 'CM%' then 2
ELSE 3
END
) a,
(
select t2_invoice_nbr, OFF_CYCLE, CASE When b.OFF_CYCLE ='N' THEN 0
ELSE rownum
END as T2_PAYROLL_NUM
from (
select distinct t2_invoice_nbr, OFF_CYCLE
from (
SELECT T2_INVOICE_NBR,...
FROM PS_T2_INV_CHK_STG2
WHERE COMPANY = #[flowVars.companies]
AND T2_PAYGROUP_TYPE = 'ZZ'
AND PAY_END_DT = '30/JUN/2013'
ORDER BY PAY_END_DT,
CASE WHEN T2_INVOICE_NBR LIKE 'IN%' then 1
WHEN T2_INVOICE_NBR LIKE 'CM%' then 2
ELSE 3
END
)
) b
) bb
where a.t2_invoice_nbr = bb.t2_invoice_nbr
ORDER BY PAY_END_DT,
CASE WHEN T2_INVOICE_NBR LIKE 'IN%' then 1
ELSE 5
END;
</db:dynamic-query>
</db:insert>
</flow>
我选择了类型作为参数,而不是动态的,但没有任何用处
2如何在控制台中显示执行的查询,以便我了解传递的参数和最终查询。我看到您在查询中使用了flowvar。您是否在执行查询之前定义公司flowvar?如果不是,您的查询将是 。。 其中公司= 和 这将是残疾 您可以使用Mule调试器并在数据库消息处理器上添加断点,以查看属性和变量的值
如果在执行查询之后您想要记录查询结果,您可以尝试向string transformer添加一个对象,然后添加一个带有[payload]表达式的记录器 获取flowVars值没有问题。我通过硬编码值尝试了相同的查询,得到了相同的错误。您的查询中似乎存在语法错误,可能是由替换MEL表达式产生的。由于您使用的是动态查询,因此MEL表达式被内联替换,因此我建议您在db:insert之前使用解析模板转换器,将查询设置为MEL表达式作为模板,然后使用记录器查看结果。这可以帮助你找出问题所在。嗯,马科斯。
2015-01-28 17:18:48 ERROR DefaultMessagingExceptionStrategy:337 -
********************************************************************************
Message : ORA-00911: invalid character
(java.sql.SQLSyntaxErrorException). Message payload is of type: String
Type : org.mule.api.MessagingException
Code : MULE_ERROR--2
Payload : /offcycle
SQL Code : 911
JavaDoc : http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html
SQL State : 42000
********************************************************************************
Exception stack is:
1. ORA-00911: invalid character
(SQL Code: 911, SQL State: + 42000) (java.sql.SQLSyntaxErrorException)
oracle.jdbc.driver.SQLStateMapping:91 (null)
2. ORA-00911: invalid character
(java.sql.SQLSyntaxErrorException). Message payload is of type: String (org.mule.api.MessagingException)
org.mule.module.db.internal.processor.AbstractDbMessageProcessor:81
********************************************************************************
Root Exception stack trace:
java.sql.SQLSyntaxErrorException: ORA-00911: invalid character