Hi, I have this xml example:declare @FileHandle as intdeclare @xmlstring as nvarchar(max)set @xmlstring = '<POInfo> <PO> <POID>100</POID> <RouteID>P1</RouteID> <CatalogID>J001</CatalogID> <RequestedQty>100</RequestedQty> <LotID/> <Priority>1</Priority> <UserID>Administrator</UserID> </PO> <POTags> <Tag ID="Test1"> <Value>10</Value> </Tag> <Tag ID="Test2"> <Value>20</Value> </Tag> <Tag ID="combo1"> <Value>aaa</Value> </Tag> <Tag ID="combo2"> <Value>p1</Value> </Tag> <Tag ID="checkTest"> <Value>false</Value> </Tag> <Tag ID="intTest"> <Value>11</Value> </Tag> <Tag ID="realTest"> <Value>50.5</Value> </Tag> </POTags> <PO> <POID>200</POID> <RouteID>P2</RouteID> <CatalogID>F002</CatalogID> <RequestedQty>200</RequestedQty> <LotID/> <Priority>2</Priority> <UserID>Administrator</UserID> </PO> <POTags> <Tag ID="Test1"> <Value>10</Value> </Tag> <Tag ID="Test2"> <Value>20</Value> </Tag> <Tag ID="combo1"> <Value>bbb</Value> </Tag> <Tag ID="combo2"> <Value>p2</Value> </Tag> <Tag ID="checkTest"> <Value>true</Value> </Tag> <Tag ID="intTest"> <Value>11</Value> </Tag> <Tag ID="realTest"> <Value>50.5</Value> </Tag> </POTags></POInfo>'DECLARE @Out varchar(100)EXECUTE sp_InsertPODetails @xmlstring, @Err_Description = @Out OUTPUTSELECT @Out
I need to loop through the tags for every PO. What I'm doing write now is to loop through the PO's:SELECT POID, RouteID, CatalogID, RequestedQty, LotID, Priority, UserID INTO #TMP1 FROM OPENXML (@FileHandle, 'POInfo/PO') WITH ( POID Varchar(255) 'POID', RouteID varchar(255) 'RouteID' , CatalogID Varchar(255) 'CatalogID', RequestedQty Varchar(25) 'RequestedQty', LotID Varchar(255) 'LotID', Priority Varchar(25) 'Priority', UserID varchar(255) 'UserID' )DECLARE PO_Cursor SCROLL CURSOR FOR SELECT POID, RouteID, CatalogID, RequestedQty, Priority, UserIDFROM #TMP1OPEN PO_CursorFETCH FIRST FROM PO_Cursor INTO @POID, @RouteID, @CatalogID, @RequestedQty, @Priority, @UserID....and then gets the tags:SELECT ID, Value INTO #TMP2 FROM OPENXML (@FileHandle, 'POInfo/POTags/Tag') WITH (ID Varchar(50), Value varchar(255) 'Value')
But the problem that I'm getting the tags for all PO's, and for each PO I'm looping all the tags.I'm not sure that I'm in the right direction. How does it can be performed.Thanks in advance.