create or replace function soap_call ( p_req_body in varchar2 , p_target_url in varchar2 , p_soap_action in varchar2 default 'none' ) return xmltype is l_soap_request varchar2(30000); l_soap_response varchar2(30000); http_req utl_http.req; http_resp utl_http.resp; begin l_soap_request := '<?xml version="1.0" encoding="UTF-8"?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body>'|| p_req_body ||'</S:Body></S:Envelope>'; http_req:= utl_http.begin_request ( p_target_url , 'POST' , 'HTTP/1.1' ); utl_http.set_header(http_req, 'Content-Type', 'text/xml; charset=UTF8'); utl_http.set_header(http_req, 'Content-Length', length(l_soap_request)); utl_http.set_header(http_req, 'SOAPAction', p_soap_action); utl_http.write_text(http_req, l_soap_request); -- the actual call to the service is made here http_resp:= utl_http.get_response(http_req); utl_http.read_text(http_resp, l_soap_response); utl_http.end_response(http_resp); -- only return from the soap response - that is: the content of the body element in the SOAP envelope return XMLType.createXML(l_soap_response).extract('/S:Envelope/S:Body/child::node()' , 'xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"'); end; --webservice调用代码 CREATE OR REPLACE FUNCTION SEND_INDUCED_MESSAGE ( p_SIMNUM IN VARCHAR2 , p_HEIGHT IN VARCHAR2 DEFAULT '32' , p_WIDTH IN VARCHAR2 DEFAULT '0' , p_COLOR IN VARCHAR2 DEFAULT '1' , p_PARKNUM IN VARCHAR2 ) RETURN VARCHAR2 AS l_response_call XMLType; l_request_body varchar2(20000); l_target_namespace varchar2(200); l_target_url varchar2(200); BEGIN l_target_namespace := 'http://led.innotek.com/'; l_target_url := 'http://192.168.10.100:8080/WebApplication/LedDisplayServiceService'; l_request_body := '<ns:sendtext xmlns:ns="'||l_target_namespace||'"> <simNum>'||p_SIMNUM||'</simNum> <tHeight>'||p_HEIGHT||'</tHeight> <tWidth>'||p_WIDTH||'</tWidth> <color>'||p_COLOR||'</color> <parkNum>'||p_PARKNUM||'</parkNum> </ns:sendtext>'; l_response_call := soap_call(l_request_body, l_target_url, 'sendtext'); return l_response_call.extract('//return/text()').getStringVal(); END ;
--创建控制列表并赋权
begin
dbms_network_acl_admin.create_acl(
acl => 'utl_http.xml',
description => 'Http Access',
principal => 'SMARTFEE',
is_grant => TRUE,
privilege => 'connect',
start_date => null,
end_date => null
);
--添加新用户
dbms_network_acl_admin.add_privilege (
acl => 'utl_http.xml',
principal => 'SMARTFEE',
is_grant => TRUE,
privilege => 'resolve',
start_date => null,
end_date => null
);
--给网络分配一个访问控制列表
dbms_network_acl_admin.assign_acl (
acl => 'utl_http.xml',
host => 'sms.pf.innotek.com',
lower_port => 8880,
upper_port => 8880
);
commit;
end;
/
--访问控制列表视图 select * from DBA_NETWORK_ACLS; select * from DBA_NETWORK_ACL_PRIVILEGES; select * from USER_NETWORK_ACL_PRIVILEGES; SELECT * FROM TABLE(DBMS_NETWORK_ACL_UTILITY.domains('www.chinastock.com.cn')); --测试 DECLARE l_url VARCHAR2(300) := 'http://www.test.com.cn/stock.xml'; l_http_request UTL_HTTP.req; l_http_response UTL_HTTP.resp; BEGIN -- Make a HTTP request and get the response. l_http_request := UTL_HTTP.begin_request(l_url); l_http_response := UTL_HTTP.get_response(l_http_request); UTL_HTTP.end_response(l_http_response);
END;
相关推荐
Oracle WebService 调用 封装为PackageBody
oracle调用webservice接口地址demo
oracle 调用 webService方法
oracle 调用 webservice 实现
oracle调用webservice个人实验成功
oracle存储过程,传入一个字符串,将传入的字符调用webservice给服务器.oracle存储过程调用webservice
oracle plsql 通过utl_http调用 webservice,包括webservice服务端的源码,以及pro的客户端代码。已测试通过。
代码已经实现了Android开发中获取Oracle数据库中的数据,通过C#写出webservice给调用,是一个很不错的选择。客服了Android4.0以上的多线程问题。
附件文档以QQ在线WEBAPI接口为实例,使用Oracle自带的 UTL包以POST方式调用WEBAPI,结果正常可用。希望对想通过数据库的方式调用WEBAPI接口的同仁门有帮助。
附件文档以QQ在线WEBAPI接口为例,使用ORACLE UTL包以GET方式调用WEBAPI,希望对想用数据方式调用WEBAPI接口的同仁们有帮助。
webservice发布;IIS部署。常见问题,如果还解决不了您的问题,尽管联系小编。
附件文档以QQ在线WEBSERVICE接口为例,使用ORACLE utl包以SOAP方式调用WEBSERVICE接口,希望对有类似需求的同仁们有所帮助。
c#2005开发的excel上传oralce小程序,学习使用
对数据库进行增删改查的webservice动态配置工具,实现动态配置各类数据库操作服务,拥有权限控制,日志监控,动态配置各类服务,随时配置随时使用不用重启web容器,简单方便
某些情况下我们可能需要与Mysql或者Oracle数据库进行数据交互,有些朋友的第一反应就是直接在Android中加载驱动...既然是调用WebService,我们首先的搭建WebService服务器。 下面演示的就是如何通过该网站提供的手机
java语言实现使用spring+mybatis+oracle访问数据库,使用cxf发布webservice,并使用axis调用webservice。项目使用maven管理jar包。
项目的需要,做了一个jdbc+webservice客户端的代码,原理是备份oracle数据库附件表,增量备份表数据后,调用服务端增量备份附件。
通过java调用oracle的biee接口webservice,主要实现三种方式: 1.通过路径获取图片和表格数据xml。 2.通过biee的逻辑sql获取图片和表格数据xml。 3.获取biee下的所有路径。 需要jar主要为axis.jar wsdl4j-1.5.1.jar ...