`
wjm901215
  • 浏览: 154899 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ORACLE WEBService调用

 
阅读更多
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 调用 封装

    在Oracle数据库环境中,WebService调用通常涉及到将外部Web服务接口集成到PL/SQL代码中,以便在数据库端执行远程操作。"Oracle WebService调用封装为PackageBody"这个标题表明我们将探讨如何创建一个PL/SQL包体...

    oracle 调用webservice

    本文将详细介绍 Oracle 调用 Webservice 的实现过程,包括 Webservice 的基本概念、 Java 编写简单的 WebService 实例、Oracle 服务器端配置、加载 JAR 包、测试调用 PHP Webservice 和 Java Webservice 等内容。...

    oracle调用webservice接口地址demo

    ##### 2.1 Oracle中的WebService调用机制 Oracle提供了`UTL_DBWS`包来支持数据库内的WebService调用。该包包含了一系列的过程和函数,用于创建服务、创建调用、设置参数等操作。 - **创建服务**:使用`create_...

    oracle调用webservice

    oracle调用webservice个人实验成功

    oracle传入一个字符串,调用webservice

    ### Oracle存储过程中调用WebService的方法解析 在Oracle数据库中,通过存储过程调用WebService是一种常见的需求,尤其是在需要与外部系统进行交互的情况下。本文将详细解释如何实现这一功能,并且会结合给定的部分...

    java 调用 odi webservice

    ODI(Oracle Data Integrator)是一种数据集成平台,提供了webservice接口,允许用户通过webservice调用ODI方案执行,从而实现数据的同步。 在本文档中,我们将通过 Java 应用程序调用 ODI webservice,实现数据的...

    oracle plsql 通过utl_http调用 webservice

    在Oracle PL/SQL中调用Web Service通常涉及以下步骤: 1. **理解Web Service**:首先,你需要了解Web Service的工作原理,通常基于SOAP(Simple Object Access Protocol)或REST(Representational State Transfer...

    oracle webservice实例

    Oracle WebService 实例详解 在 Oracle 应用开发中,Web Service 是一种常见的技术,它允许不同的系统通过标准的 XML 格式进行通信。本文将深入探讨如何在 Oracle 环境下创建和使用 Web Service 的一个实际示例,...

    oracle调webservice-post.txt

    附件文档以QQ在线WEBAPI接口为实例,使用Oracle自带的 UTL包以POST方式调用WEBAPI,结果正常可用。希望对想通过数据库的方式调用WEBAPI接口的同仁门有帮助。

    Android+Webservice Oracle

    最后,`webService`可能是一个示例的Web服务接口或者一个测试服务器地址,用于演示如何从Android客户端调用服务端方法,获取Oracle数据库中的数据。在实际项目中,这个接口可能包括增删改查(CRUD)操作,以及更复杂...

    PB+Oracle調用WebService說明及PB10.5開發類似RESTClient的工具

    标题中的“PB+Oracle調用WebService說明及PB10.5開發類似RESTClient的工具”揭示了几个关键的IT概念和技术,主要包括PowerBuilder(PB)、Oracle数据库、WebService调用以及一个基于PB10.5的RESTClient工具的开发。...

    C# oracle存储过程的webservice

    本文将深入探讨如何使用C#来调用Oracle存储过程,并将其结果封装成XML,以构建一个Web服务,用于医院系统的实际应用。 首先,让我们了解C#如何连接到Oracle数据库。这通常通过ODP.NET(Oracle Data Provider for ...

    java调用odi发布的webservice,带参数赋值

    本篇文章将深入探讨如何使用Java调用由Oracle Data Integrator (ODI) 发布的Web服务,并进行参数赋值。ODI是Oracle公司提供的一款强大的数据集成工具,它支持ETL(提取、转换、加载)过程,并且可以通过Web服务接口...

    biee的webservice调用[收集].pdf

    在“biee的webservice调用[收集].pdf”文档中,很可能是详细介绍了如何利用这些Web服务来与其他系统进行交互,例如数据集成、报告和分析等。下面是对相关知识点的详细说明: 1. **Web服务基础**:Web服务是一种通过...

    OracleEBS-WebService开发笔记.pdf

    - **Oracle Call-out WebService**:从 EBS 内部调用外部 WebService。 - **下载 Jar 文件**:获取必要的库文件。 - **加载 Jar 文件**:在 EBS 中配置外部库。 - **权限设置**:确保正确的访问权限。 - **创建...

    plsql调用webservice.rar

    - Oracle还提供了其他工具和包,如DBMS_WS和DBMS_SOAP,它们提供了更高级的Web Service操作功能,如直接解析WSDL生成PL/SQL接口,简化调用过程。 - `DBMS_WS.TEST_CLIENT` 可用于测试和调试Web Service调用,而`...

    oracle触发器加载java文件访问webservice

    这个场景中提到的"oracle触发器加载java文件访问webservice"是一个高级技术集成,它结合了关系数据库管理和Web服务的交互。让我们详细探讨一下这个主题。 首先,Oracle触发器用于在数据库层面上实现业务逻辑。它们...

Global site tag (gtag.js) - Google Analytics