CREATE or REPLACE procedure EXAME ( p_mese_elab in varchar2 default '2013-11' ) /* Input mese-anno: yyyy-mm */ as /* PARAMETRI PER LA FUNZIONE SUL CONTROLLO TEMPI DEI JOB */ utenteg varchar2(20) :=USER; procedurag varchar2(100) :='ESAMINA_BOOKINGS'; data_iniziog date :=sysdate; data_fineg date; /* FINE */ url VARCHAR2(32767); RISULTATO utl_http.html_pieces; value VARCHAR2(32767); step number; ng number; ngg number; nmax number; i number; ch_in varchar2(15); ch_out varchar2(15); app_data date; req UTL_HTTP.REQ; resp UTL_HTTP.RESP; BEGIN step:=1; execute immediate 'truncate table temp_esamina'; ng:=1; ngg:=2; select to_number(to_char(last_day(to_date('01-'||p_mese_elab,'dd-yyyy-mm')),'dd')) into nmax from dual; step:=2; while(ng < nmax) loop ch_in:=p_mese_elab||'-'||ng; ch_out:=p_mese_elab||'-'||ngg; url:='http://www.booking.com/hotel/it/st-john-s-terrace.it.html?label=gog235jc-hotel-it-it-stNjohnNsNterrace-nobrand-it-com-T001-1;sid=b4b4374c37557b33c5de3d7efa86922a;dcid=1;checkin='||ch_in||';checkout='||ch_out||';srfid=e50d1a23a5e345d633395e540801eb76769a4b87X1'; req := UTL_HTTP.BEGIN_REQUEST(url); UTL_HTTP.SET_HEADER(req, 'User-Agent', 'Mozilla/4.0'); resp := UTL_HTTP.GET_RESPONSE(req); RISULTATO:=utl_http.request_pieces(url,99999); delete temp_esamina where data_ril = trunc(to_date(ch_in,'yyyy-mm-dd')); step:=3; /* 'alt="Camera' => indicazione camera '>€ ' => indicazione prezzo numero successivo */ i:=0; for i in 1 .. RISULTATO.count loop step:=4; select to_date(ch_in,'yyyy-mm-dd') into app_data from dual; insert into temp_esamina ( testo ,data_ril ,num ) values ( RISULTATO(i) ,app_data ,i ); step:=5; end loop; UTL_HTTP.END_RESPONSE(resp); ng:=ng+1; ngg:=ngg+1; end loop; commit; exception when others then rollback; raise_application_error(-20001,'Procedura ESAMINA_BOOKINGS errore al punto: '||step||' - '||chr(10)||sqlerrm); END; /