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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
PROCEDURE proc_teste_nif(ptyp_NIF_LIST IN TAB_NIF,
XPTO_XML_OUT OUT CLOB)
IS
val_NIF VARCHAR2(20);
v_count NUMBER :=0 ;
l_count NUMBER :=0 ;
--
BEGIN
--
--
FOR i IN ptyp_NIF_LIST.FIRST .. ptyp_NIF_LIST.LAST LOOP
--
IF ptyp_nif_list(i) IS NOT NULL THEN
--
v_count := v_count +1;
val_nif:=ptyp_nif_list(i).NIF;
--
END IF;
--
END LOOP;
--
l_count := v_count;
IF v_count IS NULL THEN
v_count := 0;
l_count := 0;
END IF;
--
DBMS_OUTPUT.put_line ('v_count '|| v_count);
--
SELECT XMLElement ("soapenv:Envelope",
'http://xxx/xxx/envelope/' AS "xmlns:soapenv",
'http://xxxx/xxx/xxx/xxx/xxx/TIN/v1' AS "xmlns:v1",
'http://xxxx/xxxx/xxxx/xxx/xxxx/TINmessage/v1' AS "xmlns:v11"
),
XMLElement("soapenv:Header"),
XMLElement("soapenv:Body",
XMLElement("v1:checkTINResponse",
XMLElement("v11:SearchSummaryResult",
XMLForest(
v_count AS "ns1:TotalCount",
l_count AS "ns1:ListCount"
)
), ---Fermeture v11:SearchSummaryResult
(select XMLAgg
(XMLElement("v11:TINs",
-- XMLElement("v11:TINs",
XMLElement("v11:countryCode", NIF_LIST.CODE_PAYS),
XMLElement("v11:TINNumber", NIF_LIST.NIF)
)
)
FROM TABLE (ptyp_NIF_LIST) NIF_LIST
)
)
)
INTO lxml_out
FROM dual ;
END proc_teste_nif; |
Partager