全球旧事资料 分类
utl_dbwsi
vokecall_ha
dlel_calli
put_paramsl_i
put_params
utl_dbwsrelease_callcall_ha
dlel_callutl_dbwsrelease_serviceservice_ha
dlel_servicedbms_outputput_li
ea
ydataaccessvarchar2l_result
4
f2其它方法utl_http
上面这种方法在服务器端使用了安全认证的时候,不能使用。在这里使用utl_http直接发送http请求,请求发送后接受回传的xml,将xml放入clob,再使用xmldom将clob解析出来。
21提交请求
PROCEDUREget_http_respp_xml_charINVARCHAR2p_ws_urlINVARCHAR2IS
v_http_requtl_httpreqBEGINv_http_requtl_httpbegi
_requestp_ws_urlPOSTutl_httphttp_versio
_1_1设置安全连接信息
utl_httpset_authe
ticatio
v_http_reqwsuserwsuserwsuser保持连接状态utl_httpset_persiste
t_co
_supportv_http_reqTRUE设置编码utl_httpset_body_charsetv_http_requtf8utl_httpset_headerv_http_reqCo
te
tTypeapplicatio
soapxmlcharsetutf8utl_httpset_headerv_http_reqCo
te
tLe
gthle
gthp_xml_charutl_httpwrite_textv_http_reqp_xml_charv_http_resputl_httpget_respo
sev_http_reqdbms_outputput_li
ev_http_respstatus_codedbms_outputput_li
ev_http_respreaso
_phraseEXCEPTIONWHENutl_httpe
d_of_bodyTHEN
utl_httpe
d_respo
sev_http_respWHENOTHERSTHEN
dbms_outputput_li
eSQLCODE_SQLERRMEND
5
f22将返回结果放入clobPROCEDUREget_resp_clobp_xml_charINVARCHAR2p_ws_urlINVARCHAR2IS
v_ctNUMBER0v_le
NUMBER设置长度后,在循环读取的时候会每次读出这么多字符v_replyli
eNVARCHAR24000BEGINget_http_respp_xml_charp_ws_url定位lob非常重要不然lob会报ora22275SELECT1INTOv_resp_clobFROMdual打开lob对象dbms_lobOPENv_resp_clobdbms_loblob_readwriteIFv_http_respstatus_codeutl_httphttp_okTHEN
BEGIN将返回结果循环放入clob
LOOPutl_httpread_textv_http_respv_replyli
edbms_outputput_li
esubstrv_replyli
e1255v_le
le
gthv_replyli
eIFv_ct0THENdbms_lobWRITEv_resp_clobv_le
1v_replyli
eELSEdbms_lobwriteappe
dv_resp_clobv_le
v_replyli
eENDIFv_ctv_ct1
ENDLOOPutl_httpe
d_respo
sev_http_resp在这里不知道是什么原因,当结果全部读完后还会循环,此时会报e
dofbody的exceptio
,直接捕获,然后关闭resp。EXCEPTIONWHENutl_httpe
d_of_bodyTHEN
6
futl_httpe
d_respo
sev_http_respENDENDIFdbms_outputput_li
ele
gthv_resp_clobdbms_lobCLOSEv_clobEXCEPTIONWHENOTHERSTHENutl_httpe
d_respo
sev_http_respdbms_lobCLOSEv_resp_clobdbms_outputput_li
eSQLCODE_SQLERRMEND
23解析xmlPROCEDUREws_clob_xmldocp_xml_charINVARCHAR2p_ws_urlINVARCHAR2IS
v_parser
xmlparserparser
v_xmldoc
xmldomdomdocume
t
v_subeleme
txmldomdomeleme
t
v_
odeliststockxmldomdom
odelist
v_xml_bodyVARCHAR2100r
好听全球资料 返回顶部