我是wso2 6.4.0的新手。我必须将excel数据插入sql,所以我选择wso2 dss。使用dss记录可以正确提取并插入,但是仅插入一条记录(仅顶部记录)会使记录被跳过。我还使用了嵌套查询选项来检索和插入。
<query id="readExcelData" useConfig="excelConfig">
<excel>
<workbookname>sheet1</workbookname>
<hasheader>true</hasheader>
<startingrow>2</startingrow>
<maxrowcount>-1</maxrowcount>
<headerrow>1</headerrow>
</excel>
<result element="Products" rowName="Product">
<element column="ID" name="ID" xsdType="xs:string"/>
<element column="Model" name="Model" xsdType="xs:string"/>
<element column="Classification" name="Classification" xsdType="xs:string"/>
<call-query href="insertIntoSql" requiredRoles="">
<with-param name="ID" query-param="ID" />
<with-param name="Model" query-param="Model" />
<with-param name="Classification" query-param="Classification" />
</call-query>
</result>
</query>
<operation name="excelFileProcessing" returnRequestStatus="true">
<call-query href="readExcelData"/>
</operation>
<query id="insertIntoSql" useConfig="sqlConfig">
<sql>insert into dbo.myProductList(ID,Model,Classification) values(:ID,:Model,:Classification)</sql>
<param name="ID" sqlType="STRING" />
<param name="Model" sqlType="STRING" />
<param name="Classification" sqlType="STRING" />
</query>
答案 0 :(得分:0)
从Excel工作表检索记录后,您将获得记录集。因此,您必须编写一个突触配置来插入每个记录。为此,您要遍历excel工作表数据的有效负载(对于每个记录)并进行插入。您可以使用iterate mediator。例如,您可以实现类似于this的东西。
您可以关注