动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
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教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息



本月文章推荐
.从纵横五个方面精细优化你的Orac.
.实现高可用性设计的奥秘.
.如何使特定用户具有smbmount上的.
.对于数据库系统中使用临时表的思.
.研究生管理信息系统的开发流程二.
.LILO可以装在软盘上.
.PB如何连接Oracle数据库.
.在ADO.NET中使用Oracle存储程序.
.ORACLE 内核参数意义.
.Oracle Database 10 g : 为 DBA .
.如何有效的利用ORACLE数据字典.
.ORACLE常用傻瓜问题1000问(之九).
.在Solaris下安装VNC 远程安装Ora.
.Compress table 的内部存储细节研.
.如何在存储过程中拥有role的权限.
.ORACLE优化器.
.配置UltraEdit为Oracle PL/SQL代.
.在Windows下管理Oracle9i 服务的.
.Oracle常見問題集(三).
.Linux Shadow-Password-HOWTO.

在 Oracle10g 上构建 PL/SQL Web 服务

发表日期:2008-2-9 |



  Oracle Database 10g web 服务答应您在数据库内部使用外部 web 服务时,利用您在 PL/SQL 和 SQL 中的开发投入。下面叙述如何构建您自己的 web 服务。
  
  正如现在我们都了解的那样,web 服务模型已证实是连接应用程序的一种有效的方式。Web 服务协议,如 XML — 用于信息交换的事实标准、SOAP (简单对象访问协议) — 使您能够在分布式环境中通过 HTTP、FTP、SMTP来交换 XML 文档、WSDL (Web 服务描述语言)和 UDDI,都答应您构建平台和语言独立的、松散耦合的分布式应用程序。
  
  您可以在 Oracle Database 10g 和 Oracle Application Server (OracleAS) 10g 中(通过内置在 OracleAS 中的 OC4J 版本)提供和使用 web 服务。Oracle Database 10g 答应您使用 PL/SQL (程序包、过程、函数和触发器)、SQL 查询、SQL DML 语句和 Java 存储过程来定义 Web 服务的功能,OracleAS web 服务答应您用 J2EE (企业 JavaBeans、JMS 等)来定义 Web 服务的功能。您还可以利用 OracleAS 将数据库功能作为 J2EE web 服务提供。
  
  不过,本文仅重点叙述 PL/SQL 数据库 web 服务。根据定义,Oracle Database 10g web 服务在数据库中提供功能;它们答应您利用您在 PL/SQL 和 SQL 中的开发投资,同时从数据库内部使用外部的 web 服务。
  
  在本文中,我将向您介绍数据库 web 服务,以及如何为 Oracle Database 10g 创建、发布和调用 PL/SQL web 服务。本文中引用的所有脚本和文件都在这里提供。
  
  所需软件
  在您跟随本文中给出的示例之前,您将需要安装以下软件:
  
  Oracle Components for J2EE (OC4J) 9.0.3 版或更高版本;您将需要独立完整版(也称为扩展版)
  Oracle Database 10g
  Oracle Net 10g
  Oracle SQL*Plus (和客户端或企业安装软件一起包含)
  Java 软件开发人员工具包 (SDK) 1.4 版或更高版本
  
  数据库模式设置
  首先,我们需要设置我们的数据库模式,一个简化的 web 商店示例。
  
  在发布您稍后将看到的 web 服务之前,您必须首先按如下方式创建一个名称为 store 的用户,并将授予该用户以下所需权限(您必须首先作为拥有 CREATE USER 权限的用户登录到数据库,以创建用户):
  
  CREATE USER store IDENTIFIED BY store;
  GRANT connect, resource TO store;
  
  注重:您将在文件 web_services.sql 中找到这些语句和这一部分中出现的设置商店模式的其它语句。
  
  接下来的两条语句作为 store 用户进行连接,并创建一个名称为 order_sq 的序列,该序列稍后用来填充订单表的主键:
  
  CONNECT store/store;
  CREATE SEQUENCE order_sq;
  
  下面的语句创建所需的四个数据库表,名称分别为:prodUCt_types、products、customers 和 orders:
  
  CREATE TABLE product_types (
   product_type_id INTEGER
  CONSTRAINT product_types_pk PRIMARY KEY,
   name VARCHAR2(10) NOT NULL
  );
  
  CREATE TABLE products (
   product_id INTEGER
  CONSTRAINT products_pk PRIMARY KEY,
   product_type_id INTEGER
  CONSTRAINT products_fk_product_types
  REFERENCES product_types(product_type_id),
   name VARCHAR2(30) NOT NULL,
   description VARCHAR2(50),
   price NUMBER(5, 2)
  );
  
  CREATE TABLE customers (
   customer_id INTEGER
  CONSTRAINT customers_pk PRIMARY KEY,
   first_name VARCHAR2(10) NOT NULL,
   last_name VARCHAR2(10) NOT NULL,
   dob DATE,
   phone VARCHAR2(12)
  );
  
  CREATE TABLE orders (
   order_id INTEGER
  CONSTRAINT orders_pk PRIMARY KEY,
   product_id INTEGER
  CONSTRAINT purchases_fk_products
  REFERENCES products(product_id),
   customer_id INTEGER
  CONSTRAINT purchases_fk_customers
  REFERENCES customers(customer_id),
   quantity INTEGER NOT NULL
  );
  
  注重:假如您在一个不同的模式中为 store 用户创建了这些数据库表,那么您将需要修改示例配置文件中的模式名称(您稍后将看到这些示例配置文件)。

  
  product_types 表用来存储示例在线商店可能存有的产品类型的名称,products 表包含关于销售的商品的具体信息,customers 表存储关于获许从商店订购产品的客户的信息,orders 表包含哪一个客户订购了产品的具体信息。
  
  下面的 INSERT 语句添加行到 customers、product_types 和 products 表中:
  
  INSERT INTO customers (
   customer_id, first_name, last_name, dob, phone
  ) VALUES (
   1, 'John', 'Brown', '01-JAN-1965', '800-555-1211'
  );
  
  INSERT INTO product_types (
   product_type_id, name
  ) VALUES (
   1, 'Book'
  );
  
  INSERT INTO products (
   product_id, product_type_id, name, description, price
  ) VALUES (
   1, 1, 'Modern Science', 'A description of modern science', 19.95
  );
  
  COMMIT;
  
  我们将使用 PL/SQL 来实施我们的数据库 web 服务代码。在您将 PL/SQL 代码作为 web 服务发布之前,您必须把它放在一个程序包中。列表 1 中的语句创建了一个 PL/SQL 程序包,这个程序包包含一个答应客户订购某种产品的过程。这个程序包的名称为 dbfunc,它包含一个名称为 place_order() 的过程,该过程接收产品的 ID、客户的 ID 和要购买的产品的数量。
  
  您许可以看到,place_order() 函数检查在 products 和 customers 表中是否存在产品 ID 和客户 ID,假如存在,则在 orders 表中添加一行,从而返回一个包含该订单 ID (这是由 order_sq 序列生成的值)的字符串。假如客户 ID 或产品 ID 无效,则返回一个包含错误消息 "No such customer" 或 "No such product" 的字符串。
  
  现在,让我们看看如何安装和配置 OC4J。
  
  安装和配置 OC4J
  您必须用以下示例命令来安装 OC4J (当预备这篇文章时,我使用了 windows 2000 命令提示工具,您可以使用 Unix 或 Linux shell 中的类似的命令工具,方法是在目录路径中用斜杠 (/) 来替换反斜杠 (\)):
  
  e:
  cd e:\oracle\oc4j\j2ee\home
  java -jar oc4j.jar -install
  
  然后将会提示您输入治理用户的口令。我用 welcome 作为我的口令。
  
  您需要在 data-sources.xml 文件(该文件位于 oc4j\j2ee\home\config 目录中)中定义一个数据源,方法是添加类似于以下数据源元素的一部分内容:
  
  注重:您可以在 OTN 网站上找到本文的示例 data-sources.xml 文件。您可能需要修改 Oracle 数据库服务的名称 — 我使用默认的 ORCL 服务标识符 (SID) 并本地运行,Oracle Net 监听端口 1521,以进行连接。假如您的数据库在一个不同的服务器上运行,并有一个不同的端口号,或一个不同的 SID,那么您将需要相应地修改数据源元素。您的数据库治理员能够为您提供数据库的相应的连接详情。此外,假如您在一个不同的模式中创建了示例数据库表,那么您将需要在 data-sources.xml 文件中修改您的设置中的用户名和口令。
  
  接下来,您需要通过以下命令启动 OC4J:
  e:
  cd e:\oracle\oc4j\j2ee\home
  java -jar oc4j.jar
  
  您将看到一条指示 OC4J 已经启动的确认消息。
  
  将 PL/SQL 程序包作为数据库 Web 服务发布
  
  接下来,让我们看看如何将 dbfunc PL/SQL 程序包作为 web 服务发布。
  
  实质上,数据库 web 服务使用 OC4J 中的功能来提供 Java 类 — Java 类在数据库中充当您的 web 服务的实际实施的一个包装。您的实施可以用 SQL 或 Java 存储过程以及 PL/SQL 来编写。
  
  您可以使用 OC4J 9.0.3 版或更高版本自带的 web 服务汇编工具来发布 PL/SQL 程序包。您需要将一个 config.xml 文件传递给 web 服务汇编工具,config.xml 包含关于数据库模式中您想要将它作为 web 服务提供的 PL/SQL 程序包的信息。列表 2 包含了我们的示例中使用的示例 config.xml 文件。(您还可以使用 JDeveloper 来发布 web 服务,但那是另外一篇文章:“轻松进行 Web 服务开发”(作者:Elangovan Balusamy)要叙述的内容。)
  
  假如您的数据库在一个不同的服务器上运行、拥有一个不同端口号、或拥有一个不同于 localhost、1521 和 ORCL 的 SID,那么您将需要修改 db-url 元素中的项目。
httpServerURL 项目拥有默认的服务器和端口号, OC4J 在其上作为 localhost 运行在端口 8888 上。假如您的 OC4J 运行在一个不同的服务器和端口上,那么您将需要编辑 config.xml 文件。(注重:您可以在您安装 OC4J 的 j2ee\home\config 目录下的 http-web-site.xml 文件中找到服务器和端口设置。此外,假如您在一个不同的模式中创建了示例数据库表,那么您将需要修改 config.xml 文件中的设置中的模式。)
  
  要将 dbfunc 作为 web 服务发布,您可以运行以下命令:
  
  set ORACLE_HOME=E:\oracle\oc4j
  
  set CLASSPATH=.;%ORACLE_HOME%\webservices\lib\wsdl.jar;%
上一篇:docmd.runsql 语句执行的操作查询如何回滚? 人气:389
下一篇:PL/SQL的SELECT FOR UPDATE游标 人气:497
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-25 WikyBlog v1.7.0.1 多国语言版
2008-7-25 乐彼网上开店系统(56770 Eshop)
2008-7-25 赛特网站管理系统sitecms v3.6.0
2008-7-25 Modoer多功能点评系统 v1.0.1 Bu
2008-7-25 Shangducms Teamsuit! v1.1.0 开
2008-7-25 幻影动漫网视频系统(Ppdong) v1.
2008-7-25 acteecompany企业网站建设系统 v
2008-7-25 恒浪整合管理系统 ims v4.1 ACCE
2008-7-25 艺术图库系统 v1.0 beta
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号