.netアプリケーションから渡すXML形式のデータがあります。XMLマルチレベルデータをパラメータとして渡してストアドプロシージャで使用する
SQL Serverストアドプロシージャでは、このデータはXMLパラメータとして渡されます。私は、必要なテーブル、例えばTblOrder
とTblItem
にデータを読み込んで保存したいと思います。
XMLでは、複数の注文があります。各注文には1つまたは複数の明細が含まれています。
実装する必要のある操作上の構造:私が達成したい
<?xml version="1.0" encoding="UTF-8"?>
<Orders>
<Order>
<B2>B2**ABIJ**0000884443**PP</B2>
<CreateBy null="true" />
<CreateDate>/Date(1485150414358)/</CreateDate>
<CurrencyId>1</CurrencyId>
<CustomerId>13</CustomerId>
<DeliveryAddress>LIBERTY PRESS LLC</DeliveryAddress>
<DeliveryCity>SPRINGVILLE UT 84663</DeliveryCity>
<DeliveryCityId>0</DeliveryCityId>
<DeliveryDate>/Date(1478750400000)/</DeliveryDate>
<DeliveryId>14</DeliveryId>
<DeliveryState>UT</DeliveryState>
<DeliveryStateId>16</DeliveryStateId>
<DeliveryType>Delivery</DeliveryType>
<EquipmentId>4</EquipmentId>
<Items>
<Item>
<CSA>false</CSA>
<CTPAT>false</CTPAT>
<CommodityItem>General Freight</CommodityItem>
<CommodityItemId>0</CommodityItemId>
<CustCommodityItem null="true" />
<FAST>false</FAST>
<Hazmat>false</Hazmat>
<Height null="true" />
<IsActive>false</IsActive>
<ItemId>0</ItemId>
<ItemName>Item A</ItemName>
<Length null="true" />
<Make null="true" />
<Mass null="true" />
<MassUnit null="true" />
<Model null="true" />
<OrderId>0</OrderId>
<PIP>false</PIP>
<PilotCar>false</PilotCar>
<ReeferTemp null="true" />
<Tarp>false</Tarp>
<TrailerType null="true" />
<TruckType null="true" />
<VIN null="true" />
<Width null="true" />
<Year null="true" />
</Item>
</Items>
<L11>L11*SYL884443*BM</L11>
<LastUpdate>/Date(1485150414358)/</LastUpdate>
</Order>
<Order>
...
<Items>
<Item>
...
</Item>
</Order>
</Orders>
手順は次のとおりです:.NETアプリケーションから渡されたストアドプロシージャから
- 読むのXMLパラメータ。
- XMLをループして記事を通って行く
TblOrder
とTblItem
テーブル
にデータを保存するには、次のとおりです。私はアイデアを得た
- Pass-XML-parameter-to-Stored-Procedure
- How to loop and parse xml parameter in sql server stored procedure
非常に最初のレベルにアクセスしてください(私の場合はOrder of Order)。 2番目のレベルにアクセスする際に問題が発生しましたが、これもコレクションになります(私の場合、Order of Itemsアイテム)。ご支援
私はあなたの質問はあなたがC#でそれを行うことができたときにSQLでXMLを解析したいのはなぜ –
が何であるかわからないんだけど? – jdweng
私は、.NETアプリケーションからパラメータとしてXMLデータを渡す必要があるschenerioを持っています。 – UJS