网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.OC4J 10g 10.1.3 数据源中的连接.
.新的最优化参数缩短反应时间.
.利用您的Oracle9i技能来学习DB2二.
.OracleRAConSunCluster3.1(step.
.Oracle数据库游标使用大全.
.AIX系统下的小型计算机系统接口性.
.使用快速失败转移还是灾难保护.
.关于Oracle日期转换的一点小经验.
.ORACLE数据库管理员的职责.
.Oracle数据库如何查询记录时给记.
.ActualTest Oracle 1Z0-007 v05..
.Oracle 9iAS配置运行FORM、Report.
.过程,函数,程序包.
.在ORACLE里用存储过程定期分割表.
.Mandrake9.0的启动过程(从init开.
.Oracle DBA数据库日常维护完全手.
.如何使用Leading提示改变表连接方.
.如何在Oracle中使用游标来实现多.
.Oracle数据库重复数据删除技术的.
.缩小数据库日志的另类方法代码分.

通过PL/SQL访问Web Services

发表日期:2008-2-9


    在Web Services红得发紫的今天,到处都在谈论和使用Web Services;当然,其中有不小一部分是属于业界炒作。 Oracle也始终走在技术的最前沿,早在9i时代就发布了扩展包来支持PL/SQL访问Web Services,并且在Oracle 10g版本中使得该功能变得更加强大;这都源于引入了UTL_DBWS包,其实它是封装了JPublisher,使得PL/SQL开发者只需要使用简单的几个API就能调用Web Services了。     下面我将通过一个实例向你展示如何通过PL/SQL调用Web Services,本文的重点是PL/SQL调用Web Services实现上,对于如何发布Web Services,你可以参考本人的另一篇基础性文章《用OC4J和Axis构建Web Services》或者其他参考资料。     首先,我们来搭建运行环境吧,你得从Oracle OTN下载并安装Oracle Database(企业版、标准版、个人版均可,但切勿安装快捷版,因为它没有提供sqlj组件及相关命令)。假如你已安装好该数据库,可跳过该步骤。     然后,需要下载对应版本的UTL_DBWS:       Pre 10g: dbws-callout-utility.zip      10g: dbws-callout-utility-10R2.zip     下载完成后,需要解压该文件到<oracle_install_dir>/sqlj/lib目录下,我们还需要使用loadJava将这些jar文件加载到SYS schema中,供所有用户使用该扩展包,命令如下: <oracle_install_dir>/bin/loadjava -u sys/passWord -r -v -f -s -grant public -noverify -genmissing <oracle_install_dir>/sqlj/lib /dbwsclient.jar     其实在Oracle的文档中是声称10g是自带UTL_DBWS包的,不过我下载最新的Oracle并完全安装后,也没有发现UTL_DBWS的半点踪影,也只好自己拷贝并执行loadjava了。     好了,现在万事俱备,只剩写程序测试了,在编码测试之前,我们假设你已经将《用OC4J和Axis构建Web Services》文章里hellows已经部署好了,并能正常的调用sayHello方法了;当然,你发布其他的Web Services服务也同样可行的。下面我们就创建一个function来进行测试,测试代码如下: CREATE OR REPLACE FUNCTION call_sayHello (username  IN  VARCHAR2)
  RETURN VARCHAR2
AS
  l_service  UTL_DBWS.service;
  l_call     UTL_DBWS.call;
  l_result   ANYDATA;   l_wsdl_url        VARCHAR2(1024);
  l_service_name    VARCHAR2(200);
  l_operation_name  VARCHAR2(200);
  l_input_params    UTL_DBWS.anydata_list;
BEGIN
  l_wsdl_url       := 'http://localhost:8888/hellows/helloService?WSDL';
  l_service_name   := 'helloService';
  l_operation_name := 'sayHello';   l_service := UTL_DBWS.create_service (
    wsdl_document_location => URIFACTORY.getURI(l_wsdl_url),
    service_name           => l_service_name);   l_call := UTL_DBWS.create_call (
    service_handle => l_service,
    port_name      => NULL,
    operation_name => l_operation_name);
  l_input_params(1) := ANYDATA.ConvertVarchar2(username);   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);
EXCEPTION
  WHEN OTHERS THEN
    RETURN NULL;
END call_sayHello;        测试结果如下:  通过PL/SQL访问Web Services
上一篇:oracle startup时 ORA-00600错误解决 人气:844
下一篇:oracle用存储过程加密一段字符串(3des算法) 人气:1344
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐