我是Mule 3.7.3中的數據庫連接器的新手。我試圖使用動態形成的INSERT語句來插入批量數據。我不知道你們通常將這種方法稱爲什麼,我打算做的是動態地將多個文件加載到相應的登臺表中,而不是具有多選路由並在每個路由中對INSERT語句進行硬編碼。我的flowVars.insertStatement包含如下值:「INSERT INTO [roomService]([RoomId],[ServiceId],[DateTime])VALUES(#[payload.roomId],#[payload.serviceId],#[ payload.dateTime]) 「將帶有動態構建的INSERT語句的批量數據插入流變量
當我試圖與這些:
<db:insert config-ref="Staging_DB" doc:name="insert-data-into-staging-db" bulkMode="true">
<db:parameterized-query><![CDATA[#[flowVars.insertStatement]]]></db:parameterized-query>
這給了我」 的查詢類型必須是 '[INSERT,STORE_PROCEDURE_CALL]' 但 'DDL'(java.lang中的一個。 IllegalArgumentException)「
<db:insert config-ref="Staging_DB" doc:name="insert-data-into-staging-db" bulkMode="true">
<db:dynamic-query><![CDATA[#[flowVars.insertStatement]]]></db:dynamic-query>
這給了我 「批量查詢不能包含一個參數化的SQL查詢(java.lang.IllegalArgumentException異常)」
<db:insert config-ref="Staging_DB" doc:name="insert-data-into-staging-db" bulkMode="true">
<db:dynamic-query><![CDATA[#[flowVars.insertStatement]]]></db:dynamic-query>
這給了我 「指數:0(java.lang.IndexOutOfBoundsException)」
我需要一些指針如何正確地做到這一點。請指教。
@Yevgeniy您好,感謝您抽出寶貴的時間來作出迴應。問題是我必須從屬性文件中將VALUES字符串(VALUES(#[payload.roomId],#[payload.serviceId],#[payload.dateTime]))獲取到流變量中,然後將其連接到flowVars .insertStatement。如果我特別提到要插入數據的有效負載字段,那麼它不是動態的。讓我知道你是否有更好的想法。 –
對不起,那我只是不明白問題:( – Yevgeniy