Re: sql16012N Error -
04-30-2010
, 05:01 PM
Hi there...
I think you need to use XMLPARSE instead of XMLCAST to convert a
literal string into an XML document of type XML. Also, the paths in
the XMLTABLE function need to be adjusted because you have multiple
repeating DataBlocks in a single document. Try the following:
CREATE OR REPLACE PROCEDURE xmlProc
RESULT SETS 1
LANGUAGE SQL
BEGIN
declare Cust XML;
set Cust = xmlparse(document
'<ROOT>
<DataBlock1>
<WorkingTag>A</WorkingTag>
<IDX_NO>1</IDX_NO>
<Status>0</Status>
<DataSeq>1</DataSeq>
<Selected>1</Selected>
<TABLE_NAME>DataBlock1</TABLE_NAME>
<CustName>CUST1</CustName>
<CustSeq>1</CustSeq>
</DataBlock1>
<DataBlock1>
<WorkingTag>A</WorkingTag>
<IDX_NO>2</IDX_NO>
<Status>0</Status>
<DataSeq>2</DataSeq>
<Selected>1</Selected>
<TABLE_NAME>DataBlock1</TABLE_NAME>
<CustName>CUST2</CustName>
<CustSeq>2</CustSeq>
</DataBlock1>
</ROOT>');
insert into cust_tab2(cst)
select CustName
from XMLTABLE('$i/ROOT/DataBlock1' PASSING Cust AS "i"
Columns CustName VARCHAR(200) PATH 'CustName') AS T;
END@
Cheers,
Matthias
http://www.tinyurl.com/pureXML |