求oracle 访问 web services 办法 如何在oracle 9i下访问web services ?就是现在有一个已经发布的web services (现在是.net开发的web services)请问如何在oracle 中访问它,并获取返回结果谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是否还要加个中间件?如:asp,jsp,aspx,cgi或者应用程序 好像 不要的,oracle 应该有自己的组件把就是不知道 oracle 9i 下怎么搞 下面我将通过一个实例向你展示如何通过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 VARCHAR2AS 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); .net开发的web services估计够呛,写个java的存储过程看看。 oracle批量删除同义词问题 如何利用归档日志恢复数据库到另一个库中,环境一样 oracle 10g无法删除表数据 oracle 11gR2安装 一个看似简单的查询,请大家帮忙看看 java连接oracle的问题,请大家帮忙 有关NULL的问题 大事不妙:Oracle改版后不能进行搜索了:( 急!ORACLE事件问题 关于Dblink和视图结合,查询数据的疑问 Oracle Job 调用的存储过程 Inser语句为啥不能执行!! 一个电脑上能不能同时装SQL Server 和Oracle,而且让它们同时运行?
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);
写个java的存储过程看看。