oracle存储过程调用web请求,ORACLE存储过程调用Web Service

--创建存储过程,定义四个参数,入参:userid,code,name;出参:resmark

CREATE OR REPLACE PROCEDURE pro_test_ws(name in varchar2,resmark out varchar2) IS

--定义四个变量,http请求,http返回,请求报文,返回报文

http_req    UTL_HTTP.REQ;

http_Resp   UTL_HTTP.RESP;

request_env VARCHAR2(32767);

l_Replyline VARCHAR2(1000);

BEGIN

--开始pl/sql体

request_env := ‘

‘|| name ||‘

‘;

--打印请求报文

dbms_output.put_line(request_env);

--请求WS地址

http_req    := UTL_HTTP.

begin_request(‘http://localhost:6060/cam/services/UserSync?wsdl‘,

‘POST‘,

UTL_HTTP.http_version_1_1);

--保持连接状态

Utl_Http.Set_Persistent_Conn_Support(http_req, TRUE);

--设置编码

Utl_Http.Set_Header(http_req, ‘Content-Type‘, ‘text/xml;charset=utf-8‘);

Utl_Http.Set_Header(http_req, ‘SOAPAction‘, ‘‘);

--设置字符集

Utl_Http.Set_Body_Charset(http_req, ‘utf-8‘);

--该参数代表我发送的POST报文多长,不可少

Utl_Http.Set_Header(http_req, ‘Content-Length‘, Lengthb(request_env));

Utl_Http.Write_Line(http_req, request_env);

--赋值http返回

http_Resp := Utl_Http.Get_Response(http_req);

--将请求报文赋值给 l_Replyline

Utl_Http.Read_Text(http_Resp, l_Replyline);

dbms_output.put_line(l_Replyline);

--付给存储过程出参

resmark:=l_Replyline;

END pro_test_ws;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值