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调用通常涉及到将外部Web服务接口集成到PL/SQL代码中,以便在数据库端执行远程操作。"Oracle WebService调用封装为PackageBody"这个标题表明我们将探讨如何创建一个PL/SQL包体...
本文将详细介绍 Oracle 调用 Webservice 的实现过程,包括 Webservice 的基本概念、 Java 编写简单的 WebService 实例、Oracle 服务器端配置、加载 JAR 包、测试调用 PHP Webservice 和 Java Webservice 等内容。...
##### 2.1 Oracle中的WebService调用机制 Oracle提供了`UTL_DBWS`包来支持数据库内的WebService调用。该包包含了一系列的过程和函数,用于创建服务、创建调用、设置参数等操作。 - **创建服务**:使用`create_...
oracle调用webservice个人实验成功
### Oracle存储过程中调用WebService的方法解析 在Oracle数据库中,通过存储过程调用WebService是一种常见的需求,尤其是在需要与外部系统进行交互的情况下。本文将详细解释如何实现这一功能,并且会结合给定的部分...
ODI(Oracle Data Integrator)是一种数据集成平台,提供了webservice接口,允许用户通过webservice调用ODI方案执行,从而实现数据的同步。 在本文档中,我们将通过 Java 应用程序调用 ODI webservice,实现数据的...
在Oracle PL/SQL中调用Web Service通常涉及以下步骤: 1. **理解Web Service**:首先,你需要了解Web Service的工作原理,通常基于SOAP(Simple Object Access Protocol)或REST(Representational State Transfer...
Oracle WebService 实例详解 在 Oracle 应用开发中,Web Service 是一种常见的技术,它允许不同的系统通过标准的 XML 格式进行通信。本文将深入探讨如何在 Oracle 环境下创建和使用 Web Service 的一个实际示例,...
附件文档以QQ在线WEBAPI接口为实例,使用Oracle自带的 UTL包以POST方式调用WEBAPI,结果正常可用。希望对想通过数据库的方式调用WEBAPI接口的同仁门有帮助。
最后,`webService`可能是一个示例的Web服务接口或者一个测试服务器地址,用于演示如何从Android客户端调用服务端方法,获取Oracle数据库中的数据。在实际项目中,这个接口可能包括增删改查(CRUD)操作,以及更复杂...
标题中的“PB+Oracle調用WebService說明及PB10.5開發類似RESTClient的工具”揭示了几个关键的IT概念和技术,主要包括PowerBuilder(PB)、Oracle数据库、WebService调用以及一个基于PB10.5的RESTClient工具的开发。...
本文将深入探讨如何使用C#来调用Oracle存储过程,并将其结果封装成XML,以构建一个Web服务,用于医院系统的实际应用。 首先,让我们了解C#如何连接到Oracle数据库。这通常通过ODP.NET(Oracle Data Provider for ...
本篇文章将深入探讨如何使用Java调用由Oracle Data Integrator (ODI) 发布的Web服务,并进行参数赋值。ODI是Oracle公司提供的一款强大的数据集成工具,它支持ETL(提取、转换、加载)过程,并且可以通过Web服务接口...
在“biee的webservice调用[收集].pdf”文档中,很可能是详细介绍了如何利用这些Web服务来与其他系统进行交互,例如数据集成、报告和分析等。下面是对相关知识点的详细说明: 1. **Web服务基础**:Web服务是一种通过...
- **Oracle Call-out WebService**:从 EBS 内部调用外部 WebService。 - **下载 Jar 文件**:获取必要的库文件。 - **加载 Jar 文件**:在 EBS 中配置外部库。 - **权限设置**:确保正确的访问权限。 - **创建...
- Oracle还提供了其他工具和包,如DBMS_WS和DBMS_SOAP,它们提供了更高级的Web Service操作功能,如直接解析WSDL生成PL/SQL接口,简化调用过程。 - `DBMS_WS.TEST_CLIENT` 可用于测试和调试Web Service调用,而`...
这个场景中提到的"oracle触发器加载java文件访问webservice"是一个高级技术集成,它结合了关系数据库管理和Web服务的交互。让我们详细探讨一下这个主题。 首先,Oracle触发器用于在数据库层面上实现业务逻辑。它们...