1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
DECLARE
--
retval xmltype := xmltype('<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body>
<TICKETCreateRespMsg xmlns="http://www.testurl.com/webservices/">
<body xmlns="">
<CreateTicket>
<TICKET_NO>A-32758628</TICKET_NO>
<TICKET_NO>C-32758628</TICKET_NO>
<TICKET_NO>B-32758628</TICKET_NO>
<SUMMARY>Test1</SUMMARY>
<ERROR_MSG>Test2</ERROR_MSG>
</CreateTicket>
</body>
</TICKETCreateRespMsg>
</env:Body>
</env:Envelope>');
v_ticket_no VARCHAR2(30);
v_summary VARCHAR2(30);
v_error_msg VARCHAR2(30);
v_ns_map VARCHAR2(200) := 'xmlns:env="http://schemas.xmlsoap.org/soap/envelope/", xmlns:ns1="http://www.testurl.com/webservices/"';
v_xpath VARCHAR2(200) := '/env:Envelope/env:Body/ns1:TICKETCreateRespMsg/body/CreateTicket';
--
BEGIN
--
FOR I IN (SELECT extractValue(retval, v_xpath || '/TICKET_NO', v_ns_map) TICKET_NO,
extractValue(retval, v_xpath || '/SUMMARY', v_ns_map) SUMMARY ,
extractValue(retval, v_xpath || '/ERROR_MSG', v_ns_map)ERROR_MSG
--INTO v_ticket_no, v_summary, v_error_msg
FROM dual) LOOP
--
dbms_output.put_line('TICKET_NO = '||i.TICKET_NO);
dbms_output.put_line('SUMMARY = '|| i.summary);
dbms_output.put_line('ERROR_MSG = '|| i.error_msg);
--
END LOOP;
--
END; |
Partager