115 lines
2.3 KiB
Plaintext
Executable File
115 lines
2.3 KiB
Plaintext
Executable File
create or replace package body http_util_pkg
|
|
as
|
|
|
|
/*
|
|
|
|
Purpose: Package contains HTTP utilities
|
|
|
|
Remarks:
|
|
|
|
Who Date Description
|
|
------ ---------- --------------------------------
|
|
MBR 01.01.2008 Created
|
|
|
|
*/
|
|
|
|
|
|
function get_clob_from_url (p_url in varchar2) return clob
|
|
as
|
|
l_http_request utl_http.req;
|
|
l_http_response utl_http.resp;
|
|
l_text varchar2(32767);
|
|
l_returnvalue clob;
|
|
|
|
begin
|
|
|
|
|
|
/*
|
|
|
|
Purpose: get clob from URL
|
|
|
|
Remarks:
|
|
|
|
Who Date Description
|
|
------ ---------- --------------------------------
|
|
MBR 01.01.2008 Created
|
|
|
|
*/
|
|
|
|
dbms_lob.createtemporary(l_returnvalue, false);
|
|
|
|
l_http_request := utl_http.begin_request (p_url);
|
|
l_http_response := utl_http.get_response (l_http_request);
|
|
|
|
begin
|
|
loop
|
|
utl_http.read_text (l_http_response, l_text, 32767);
|
|
dbms_lob.writeappend (l_returnvalue, length(l_text), l_text);
|
|
end loop;
|
|
exception
|
|
when utl_http.end_of_body then
|
|
utl_http.end_response (l_http_response);
|
|
end;
|
|
|
|
return l_returnvalue;
|
|
|
|
exception
|
|
when others then
|
|
utl_http.end_response (l_http_response);
|
|
dbms_lob.freetemporary(l_returnvalue);
|
|
raise;
|
|
|
|
end get_clob_from_url;
|
|
|
|
|
|
function get_blob_from_url (p_url in varchar2) return blob
|
|
as
|
|
l_http_request utl_http.req;
|
|
l_http_response utl_http.resp;
|
|
l_raw raw(32767);
|
|
l_returnvalue blob;
|
|
|
|
begin
|
|
|
|
/*
|
|
|
|
Purpose: Get blob from URL
|
|
|
|
Remarks:
|
|
|
|
Who Date Description
|
|
------ ---------- --------------------------------
|
|
MBR 01.01.2008 Created
|
|
|
|
*/
|
|
|
|
dbms_lob.createtemporary (l_returnvalue, false);
|
|
|
|
l_http_request := utl_http.begin_request (p_url);
|
|
l_http_response := utl_http.get_response (l_http_request);
|
|
|
|
begin
|
|
loop
|
|
utl_http.read_raw(l_http_response, l_raw, 32767);
|
|
dbms_lob.writeappend (l_returnvalue, utl_raw.length(l_raw), l_raw);
|
|
end loop;
|
|
exception
|
|
when utl_http.end_of_body then
|
|
utl_http.end_response(l_http_response);
|
|
end;
|
|
|
|
return l_returnvalue;
|
|
|
|
exception
|
|
when others then
|
|
utl_http.end_response (l_http_response);
|
|
dbms_lob.freetemporary (l_returnvalue);
|
|
raise;
|
|
|
|
end get_blob_from_url;
|
|
|
|
|
|
end http_util_pkg;
|
|
/
|
|
|