Как вставить все записи таблицы Excel в базу данных SQL с помощью wso2 dss 6.4.0? - PullRequest
0 голосов
/ 06 июня 2019

Я новичок в 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>

1 Ответ

0 голосов
/ 07 июня 2019

Как только вы извлекаете записи из листа Excel, вы получаете наборы записей.Поэтому вы должны написать конфигурацию синапса, чтобы вставить каждую запись.Для этого вам нужно перебрать полезную нагрузку данных таблицы Excel (для каждой записи) и вставить.Вы можете использовать итерационный посредник .Например, вы можете реализовать что-то похожее на this .

Вы можете выполнить

  1. В прокси-сервисе / API вызовите dataservice, чтобы получить данные листа Excel.,
  2. Итерация по результирующему набору.
  3. На каждой итерации создайте полезную нагрузку для вставки данных в БД и вызовите службу данных для вызова запроса вставки данных.
  4. Вызов прокси-службы / API.
...