我是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