我在oracle中给A表创建了触发器,触发器中调用存储过程发送http请求,并发时会返回无法处理大量的http请求的错误,我的存储过程是这样写的
CREATE OR REPLACE procedure test_xml(p_id varchar2,p_jkid varchar2,p_jsxml varchar2)
is
l_http_request utl_http.req;
l_http_response utl_http.resp;
p_url varchar2(4000);
v_xml varchar2(4000);
begin
v_xml:=replace(p_jsxml,'?','^');
v_xml:=replace(v_xml,'/','*');
v_xml:=replace(v_xml,'<','-');
v_xml:=replace(v_xml,'>','(');
v_xml:=replace(v_xml,' ','%');
v_xml:=replace(v_xml,'''','$');
p_url:='http://192.168.1.102:8013/Default.aspx?id='||p_id||'&jkid='||p_jkid||'&jsxml='||v_xml;
-- 发送http请求
l_http_request := utl_http.begin_request(p_url);
utl_http.set_header(l_http_request, 'content-type', 'text/xml; charset=utf-8');
l_http_response := utl_http.get_response(l_http_request);
utl_http.end_request(l_http_request);
utl_http.end_response(l_http_response);
exception
when others then
rollback;
utl_http.end_request(l_http_request);
utl_http.end_response(l_http_response);
end;这个写的有什么问题么oraclexml
CREATE OR REPLACE procedure test_xml(p_id varchar2,p_jkid varchar2,p_jsxml varchar2)
is
l_http_request utl_http.req;
l_http_response utl_http.resp;
p_url varchar2(4000);
v_xml varchar2(4000);
begin
v_xml:=replace(p_jsxml,'?','^');
v_xml:=replace(v_xml,'/','*');
v_xml:=replace(v_xml,'<','-');
v_xml:=replace(v_xml,'>','(');
v_xml:=replace(v_xml,' ','%');
v_xml:=replace(v_xml,'''','$');
p_url:='http://192.168.1.102:8013/Default.aspx?id='||p_id||'&jkid='||p_jkid||'&jsxml='||v_xml;
-- 发送http请求
l_http_request := utl_http.begin_request(p_url);
utl_http.set_header(l_http_request, 'content-type', 'text/xml; charset=utf-8');
l_http_response := utl_http.get_response(l_http_request);
utl_http.end_request(l_http_request);
utl_http.end_response(l_http_response);
exception
when others then
rollback;
utl_http.end_request(l_http_request);
utl_http.end_response(l_http_response);
end;这个写的有什么问题么oraclexml
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货