2012-01-02 9 views
2

私は、別のクエリの入力として1つのクエリから取得する日付パラメータを使用するMuleのフローを持っています。日付のパラメータをMuleのjdbcクエリに渡す

​​

これを実行すると、これを動作させることができません(Oracle DBを使用していることに注意してください)。私は以下の例外を含んでいます。誰かがこれに遭遇しましたか?

-------------------------------------------------------------------------------- 
Exception stack is: 
1. Invalid column type(SQL Code: 17004, SQL State: + null) (java.sql.SQLException) 
    oracle.jdbc.driver.DatabaseError:113 (null) 
2. Invalid column type Query: SELECT ID FROM CUSTOMERS WHERE UPDATED < TO_DATE(?,'YYYY-MM-DD HH24:MI:SS') Parameters: [[2000-01-01]](SQL Code: 17004, SQL State: + null) (java.sql.SQLException) 
    org.apache.commons.dbutils.QueryRunner:540 (null) 
3. Failed to route event via endpoint: DefaultOutboundEndpoint{endpointUri=jdbc://getCustomerIds, connector=JdbcConnector 
{ 
    name=myConnector 
    lifecycle=start 
    this=668e94 
    numberOfConcurrentTransactedReceivers=4 
    createMultipleTransactedReceivers=false 
    connected=true 
    supportedProtocols=[jdbc] 
    serviceOverrides=<none> 
} 
, name='endpoint.jdbc.getCustomerIds', mep=REQUEST_RESPONSE, properties={queryTimeout=-1}, transactionConfig=Transaction{factory=null, action=INDIFFERENT, timeout=0}, deleteUnacceptedMessages=false, initialState=started, responseTimeout=10000, endpointEncoding=UTF-8, disableTransportTransformer=false}. Message payload is of type: ArrayList (org.mule.api.transport.DispatchException) 
    org.mule.transport.AbstractMessageDispatcher:106 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transport/DispatchException.html) 
-------------------------------------------------------------------------------- 
+0

? –

+0

'INFO 2012-01-03 08:27:00,030 [scheduler-TalentumESB_Worker-12] org.mule.api.processor.LoggerMessageProcessor:last_poll_end = [2000-01-01]' これに続いて、私の元の投稿。 –

+0

ロガーは問題が選択部分にあることをはっきりと示しており、挿入部分ではないことを明確に示しています。 –

答えて

1

問題を解決しました。問題は、部分的には、最初のクエリから返された日付変数が配列として格納されていることでした。これを解決するには、最初の要素を選びます。それ以外にも、2番目のSQLクエリでto_date()を削除しました。

これは、配列の最初の要素を取得します。

<enrich target="#[variable:last_poll_end]" source="#[groovy:payload.last_poll_end[0]]"/> 

更新されたSQL:ロガーの出力を何

<jdbc:query key="getCustomerIds" value="SELECT id FROM customers WHERE updated &lt; #[variable:last_poll_end]" />