lmdleon |
С вебсервиса приходит большой респонз. 1) Как его получить? 2) Как его парсить? Кто-нибудь сталкивался? |
Еще как. Вот так можно получить курсы валют с сайта ЦБ на сегодня.
Кстати, тема уже была в форуме.
set long 5000;
create or replace function get_clobFromUrl(p_url varchar2, p_charset varchar2 default 'UTF8') return clob is
req utl_http.req;
resp utl_http.resp;
val varchar2(32547);
a clob;
BEGIN
dbms_lob.createtemporary(a,true);
dbms_lob.open(a,dbms_lob.lob_readwrite);
req := utl_http.begin_request(p_url);
utl_http.set_body_charset(req, p_charset);
resp := utl_http.get_response(req);
LOOP
a := a||val;
utl_http.read_text(resp, val, 5000);
END LOOP;
utl_http.end_response(resp);
return a;
EXCEPTION
WHEN utl_http.end_of_body THEN
utl_http.end_response(resp);
return a;
WHEN others then
utl_http.end_response(resp);
raise;
END;
/
drop table xmls;
create table xmls (id number, des xmltype);
declare
v varchar2(4000);
begin
v:=get_clobFromUrl('http://www.cbr.ru/scripts/XML_daily.asp?date_req='||to_char(SYSDATE,'DD/MM/YYYY'), 'CL8MSWIN1251');
insert into xmls values(1, XMLType(v));
end;
/
select * from xmls;