Oracle_webservice
2014-04-13 14:55
183 查看
在ORACLE的存储过程中,我们可以通过特点的包调用WEBSERVICE程序。先到ORACLE官方网站上去下载:dbws-callout-utility-10131.zip,然后解压这个包里的/sqlj/lib/里的内容到$ORACLE_HOME/sqlj/lib文件夹中。
执行如下命令行:
export PATH=$ORACLE_HOME/bin:$PATH
cd $ORACLE_HOME/sqlj/lib
loadjava -u 用户名/密码 -r -v -f -genmissing -s -grant public dbwsclientws.jar dbwsclientdb11.jar (注意是11g数据库)
然后进入数据库,如果发现utl_dbws包不存在,就直接在编译包utl_dbws_decl.sql和utl_dbws_body.sql。
这样,就实现了包的设置,无需重新启动数据库。
以下为一个程序的例子,来自网络,特此声明。
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;
/
执行如下命令行:
export PATH=$ORACLE_HOME/bin:$PATH
cd $ORACLE_HOME/sqlj/lib
loadjava -u 用户名/密码 -r -v -f -genmissing -s -grant public dbwsclientws.jar dbwsclientdb11.jar (注意是11g数据库)
然后进入数据库,如果发现utl_dbws包不存在,就直接在编译包utl_dbws_decl.sql和utl_dbws_body.sql。
这样,就实现了包的设置,无需重新启动数据库。
以下为一个程序的例子,来自网络,特此声明。
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;
/
相关文章推荐
- C#调用Oracle ebs生成Webservice,加用户名密码验证
- Nginx配置WebService、MySQL、SQL Server、ORACLE等代理
- WebService无法连接Oracle
- webservice 执行连接oracle报错32位不能运行64位系统
- oracle调用webservice
- 发布PL/SQL API成Webservice,并注册到IR(Oracle Integration Repositoy)中
- WebService部署时“需要ORACLE客户端软件8.1.7或更高版本”等问题的解决
- Oracle的Webservice版本和客户端版本不同的解决方法
- oracle 调用webservice
- C#中WebService针对Oracle的事务并发出现异常解决方法
- WebService 无法访问Oracle的问题(存档自用,搜自网络)
- C# 调用 WebService 连接ORACLE 11g
- Oracle EBS接口开发之通过DBWS包实现WEBSERVICE
- 使用WebService与Oracle EBS进行集成
- oracle plsql调用webservice
- Oracle调用webservice说明
- Oracle API Gateway连接WebService服务,攻击保护
- 使用WebService与Oracle EBS进行集成
- Web Server 在iis上部署webservice基于oracle
- webservice 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。