UTL_DBWS包的创建和用法
UTL_DBWS - Consuming Web Services in Oracle 10g
In a previous article I presented a method for Consuming Web Services using a basic SOAP implementation. This article provides similar functionality, but this time using the UTL_DBWS package, which is essentially a PL/SQL wrapper over JPublisher.
First, download the latest copy of the dbwsclient.jar file:
- Pre 10g: dbws-callout-utility.zip (10.1.2)
 - 10g: dbws-callout-utility-10R2.zip (10.1.3.0)
 - 10g & 11g latest: dbws-callout-utility-10131.zip (10.1.3.1)
 
Extract the jar file from the zip file into the $ORACLE_HOME/sqlj/lib directory.
The jar file can be loaded into the SYS schema for everyone to access, or into an individual schema that needs access to the web client.
# Load into the SYS schema.
export PATH=/u01/app/oracle/product/10.2.0/db_1/bin:$PATH
cd /u01/app/oracle/product/10.2.0/db_1/sqlj/lib
# 10gR2
loadjava -u sys/password -r -v -f -genmissing -s -grant public dbwsclientws.jar dbwsclientdb102.jar
# 11g
loadjava -u sys/password -r -v -f -genmissing -s -grant public dbwsclientws.jar dbwsclientdb11.jar # Load into an individual schema.
export PATH=/u01/app/oracle/product/10.2.0/db_1/bin:$PATH
cd /u01/app/oracle/product/10.2.0/db_1/sqlj/lib
# 10gR2
loadjava -u scott/tiger -r -v -f -genmissing dbwsclientws.jar dbwsclientdb102.jar
# 11g
loadjava -u scott/tiger -r -v -f -genmissing dbwsclientws.jar dbwsclientdb11.jar
In Oracle 10g the UTL_DBWS package is loaded by default. In Oracle9i the package must be loaded using the specification and body provided in the zip file.
The function below uses the UTL_DBWS package to access a web services from PL/SQL. The URL of the WDSL file describing the web service is shown here (http://webservices.imacination.com/distance/Distance.jws?wsdl). The web service returns the city associated with the specified zipcode.
CREATE OR REPLACE FUNCTION get_city_from_zipcode (p_zipcode IN VARCHAR2)
RETURN VARCHAR2
AS
l_service UTL_DBWS.service;
l_call UTL_DBWS.call;
l_result ANYDATA; l_wsdl_url VARCHAR2(32767);
l_namespace VARCHAR2(32767);
l_service_qname UTL_DBWS.qname;
l_port_qname UTL_DBWS.qname;
l_operation_qname UTL_DBWS.qname;
l_input_params UTL_DBWS.anydata_list;
BEGIN
l_wsdl_url := 'http://webservices.imacination.com/distance/Distance.jws?wsdl';
l_namespace := 'http://webservices.imacination.com/distance/Distance.jws'; l_service_qname := UTL_DBWS.to_qname(l_namespace, 'DistanceService');
l_port_qname := UTL_DBWS.to_qname(l_namespace, 'Distance');
l_operation_qname := UTL_DBWS.to_qname(l_namespace, 'getCity'); l_service := UTL_DBWS.create_service (
wsdl_document_location => URIFACTORY.getURI(l_wsdl_url),
service_name => l_service_qname); l_call := UTL_DBWS.create_call (
service_handle => l_service,
port_name => l_port_qname,
operation_name => l_operation_qname); l_input_params(0) := ANYDATA.ConvertVarchar2(p_zipcode); l_result := UTL_DBWS.invoke (
call_handle => l_call,
input_params => l_input_params); UTL_DBWS.release_call (call_handle => l_call);
UTL_DBWS.release_service (service_handle => l_service); RETURN ANYDATA.AccessVarchar2(l_result);
END;
/
The output below shows the function in action.
SQL> SELECT get_city_from_zipcode('94065') FROM dual; GET_CITY_FROM_ZIPCODE('94065')
--------------------------------------------------------------------------------
Redwood City SQL> SELECT get_city_from_zipcode('94066') FROM dual; GET_CITY_FROM_ZIPCODE('94066')
--------------------------------------------------------------------------------
San Bruno SQL>需要说明的先要安装oracle jvm 用dbca向导来添加添加完成后,再按上面方法创建UTL_DBWS包
摘录自:http://blog.itpub.net/7199859/viewspace-586802
UTL_DBWS包的创建和用法的更多相关文章
- Python 基础教程之包和类的用法
		
Python 基础教程之包和类的用法 建立一个文件夹filePackage 在filePackage 文件夹内创建 __init__.py 有了 __init__.py ,filePackage才算是 ...
 - Oracle中包的创建
		
包是过程和函数的集合体,包包括创建包和创建包体,创建包的时候在可以定义过程和函数,包体中则具体实现过程和函数. eg: --创建包 create or replace package mypac1 ...
 - [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)
		
原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天 ...
 - oracle 之 包,包体创建和使用案例
		
先创建包,再创建包体---------------创建包体--------------------- create or replace package body pkg_yygl_service I ...
 - Java中带包(创建及引用)的类的编译
		
Java中带包(创建及引用)的类的编译与调试 java源程序的编译大家都知道,也就是cmd中到源文件所在目录下javac **.java即可,当程序中有包声明还能简简单单的直接javac **.jav ...
 - 在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YM
		
题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 m ...
 - PL-SQL 包的创建和应用
		
 PL-SQL 包的创建和应用 ①简单介绍 包是一组相关过程.函数.变量.常量和游标等PL/SQL程序设计元素的组合,它具有面向对象程序设计语言的特点.是对这些PL/SQL 程序设计元素的 ...
 - Java:多线程,java.util.concurrent.atomic包之AtomicInteger/AtomicLong用法
		
1. 背景 java.util.concurrent.atomic这个包是非常实用,解决了我们以前自己写一个同步方法来实现类似于自增长字段的问题. 在Java语言中,增量操作符(++)不是原子的,也就 ...
 - 自定义 bundle 包的创建
		
在我们使用第三方框架时,常常看到XXX.bundle的文件. 我们找到该文件,显示包内容,大致看到很多资源文件:图片.配置文本.XIB文件…… 什么是Bundle文件? 简单理解,就是资源文件包. ...
 
随机推荐
- Jquery6 DOM 节点操作
			
学习要点: 1.创建节点 2.插入节点 3.包裹节点 4.节点操作 DOM 中有一个非常重要的功能,就是节点模型,也就是 DOM 中的“M”.页面中的元素结构就是通过这种节点模型来互相对应着的,通过这 ...
 - localAddress
			
$(function(){ <% out.println("/** ip:"+request.getLocalAddr()+"("+request.get ...
 - 解读:hadoop压缩格式
			
Hadoop中用得比较多的4种压缩格式:lzo,gzip,snappy,bzip2.它们的优缺点和应用场景如下: 1). gzip压缩 优点:压缩率比较高,而且压缩/解压速度也比较快:hadoop本身 ...
 - JS输出表格头上的文字内容
			
Array.from(document.querySelectorAll("#tb1 tr .cell")).map(it=>it.innerText)
 - maven打包pom.xml备忘
			
打包生成可执行jar 包 POM.XML <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=" ...
 - BZOJ4765: 普通计算姬
			
BZOJ4765: 普通计算姬 题目描述 传送门 题目分析 求的和非常奇怪,不具有连续性,所有上树的数据结构全死了. 考虑分块,思考对于一段连续的询问区间可以直接询问整块,零散块可以在树上dfs序暴力 ...
 - Spring MVC 处理中文乱码
			
<filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>or ...
 - sa learning
			
后缀数组之前一直在给队友搞,但是这个类太大了,预感到青岛八成会有,于是自己也学习一下,记录一下做题的历程 所用的模板暂时来自于队友的倍增nlogn da算法 int t1[maxn] , t2[max ...
 - HttpServletResponse response详解
			
//内容类型和编码格式可以被调用多次,最后一次将覆盖之前的设置 //内容类型和编码格式必须在 //设置内容类型getWriter和getOutputStream方法之前调用,否则不起作用 //若未设置 ...
 - Impala 技术点梳理
			
1.优点 1.1 快! 主节点生成执行计划树并分发执行计划至各节点并行执行的拉式获取数据(MR:推式获取数据) 计算的中间结果不写入磁盘 1.2 便利 提供SQL语义,可以方便的进行复杂的数据分析任 ...