declare
ivkX XMLType;
nperiodsX XMLType;
suminsX NUMBER(10);
nperiods_tab nperiods_T;
begin
ivkX:=xmltype(
'<ivk>
<insurance>
<sumins>20596</sumins>
<yearsins>56</yearsins>
<daysins>156</daysins>
</insurance>
<nperiods>
<nperiod datefrom="1965-10-03" dateto="1965-10-03" days="1" />
<nperiod datefrom="2005-09-01" dateto="2009-12-31" days="1583" />
<nperiod datefrom="2013-01-01" dateto="2013-12-31" days="8" />
</nperiods>
</ivk>');
-- usual
SELECT extractvalue(ivkX, '//ivk/insurance/sumins') INTO suminsX FROM DUAL;
DBMS_OUTPUT.PUT_LINE(suminsX);
-- preferred, faster, avoids context switch PLSQL <--> SQL
suminsX:=ivkX.EXTRACT('//ivk/insurance/sumins/text()').GETSTRINGVAL();
DBMS_OUTPUT.PUT_LINE(suminsX);
nperiodsX:=ivkX.EXTRACT('//ivk/nperiods');
nperiodsX.ToObject(nperiods_tab);
end;