Oracle动态Web开发实例演示

数据库 Oracle
Oracle动态Web的开发以及其相关的实际应用,其中包括用Oracle WebServer来构建Web数据库的实际应用 ,以及利用WebServer与PL/SQL开发动态Web实例演示。

如果你在Oracle动态Web的开发以及其相关的实际应用的实际操作中,你对Oracle动态Web的开发以及其相关的实际应用有不解之处时,你可以通过以下的文章对其的实际应用与功能有所了解,以下是文章的具体介绍,望你浏览完以下的内容会有所收获。

 

1、用Oracle WebServer构建Web数据库应用

Oracle 8服务器是一个完善的信息管理环境。它是一个大量数据的储藏所,并给用户提供对这些数据的快速访问。它能够支持C/S结构进行分布式处理和Web计算等。利用其服务器选件之一的WebServer,可以提供实现Web数据库应用的强大功能。

 

一般来说,实现Web数据库应用可以在WebServer端提供CGI/API等中间件来连接WebServer 和DB Server,也可以让用户通过Web浏览器把相关应用下载到客户端运行,在客户端直接访问数据库,如Java Applet,Active X,Plug-in等。本文主要介绍利用Oracle 8 提供的PL/SQL和其功能强大的内置程序包来编写程序以实现动态的Web应用。

属于利用中间件开发的一种。中间件负责管理WebServer和DBServer之间的通信并提供应用程序服务,它能够直接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的Oracle动态HTML页面,或执行用户查询,并将查询结果格式化成HTML页面再通过WebServer返回给用户浏览器。其一般结构如下所示:

 

Web浏览器 ←→ Internet ←→ Web Server ←→ CGI/API ←→ Oracle DB Server

 

2、PL/SQL

 

Oracle从其版本6开始支持一种过程处理语言PL/SQL,并将其作为所有Oracle工具的标准编程语言,从而所有的过程组件在Oracle服务器产品中都能实现。用PL/SQL可以实现下述重要功能:

 

存储过程,即存放在Oracle数据库中的程序(或代码段)并为你的机构完成特定的重要工作;

 

数据库触发器,即存放在数据库中的代码,可由应用所产生的事件触发;

 

程序包,即把多个过程组合在一起当作单个程序单元的代码存放在数据库中。

 

其中内置程序包是预先生成的,存储在数据库中,且能在PL/SQL代码块中调用的根据需求可以传递参数的程序。它可以完成把结果直接输出到终端窗口;直接从操作系统文件读写数据;执行动态的SQL等多项功能。常用的如HTP,HTF,OWA-UTIL等。下面将通过一个Oracle动态的网上查询分数的实例来说明其在动态Web中的应用。

3、利用WebServer和PL/SQL开发动态Web实例

 

现有一考生成绩库需在网上向用户提供查询成绩的功能。首先可考虑利用HTP程序包根据用户输入的考生号到数据库中查询相应的信息,返回一个网页。代码如下:

 

 

Create or replace procedure score_into_webpage (code_in in number)  
As  
cursor score_cursor is  
select code,name,score  
from student  
where code = code_in;   
Begin  
Htp.htmlopen;   
Htp.headopen;   
Htp.title ('Student's score information');   
Htp.headclose;   
Htp.bodyopen (cattributes=>'bgcolor = "#80800"');   
Htp.tableopen(border');   
Htp.tablecaption ('Score Information','center');   
Htp.tablerowopen;   
Htp.tableheader (' Student Code');   
Htp.tableheader (' Student Name');   
Htp.tableheader (' Student Score');  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

固定地显示页标题、标题、表头等信息,每次调用此页时显示的信息是相同的

 

Htp.tablerowclose;   
For score_rec in score_cur  
Loop 
  • 1.
  • 2.
  • 3.

利用游标的For循环为游标在网页中产生一个数据行

htp.tablerowopen;   
htp.tabledata (score_rec.code);   
htp.tabledata (score_rec.name);   
htp.tabledata (score_rec.score);   
htp.tablerowclose;   
Endloop;   
Htp.tableclose;   
Htp.bodyclose;   
Htp.htmlclose;   
End;  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

通过以上代码,我们有了一个基本的用数据库中的数据Oracle动态的生成一个网页的方法,下面将建立一个简单的表单。在表单中调用上述程序和接受用户输入的考生号码,从而在客户端向用户动态地显示从数据库中查询的信息。

 

Create or replace procedure ScoreForm  
As  
Begin  
Htp.headopen;   
Htp.title ('Code Entry Form');   
Htp.headclose;   
Htp.bodyopen;   
Htp.header (2,'Score Information Code Form');   
Htp.p ('  
');   
Htp.formopen ('Score_into_webpage',cmethod=>'GET');  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

打开ScoreForm表单。缺省情况下Score_into_webpage PL/SQL过程用GET方法调用。GET方法在URL里显示传递的参数。

 

Htp.tableopen ('border');   
Htp.tablerowopen;   
Htp.tabledata ('Enter Student Code');   
Htp.tabledata (htf.formtext ('code_in',5,5));  
  • 1.
  • 2.
  • 3.
  • 4.

 

用一个文本框提示用户输入考号。文本框的名字必须与调用过程里的输入参数相同

 

 

Htp.tablerowclose;   
Htp.tablerowopen;   
Htp.tablerowclose;   
Htp.tablerowopen;   
Htp.tabledata (htf.formSubmit);   
Htp.tabledata (htf.formReset);   
Htp.tablerowclose;   
Htp.formclose;   
Htp.bodyclose;   
Htp.htmlclose;   
End;  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

上述过程在客户端被调用后产生的HTML即可显示一Oracle动态表单接受用户输入的考号,然后传递给调用的过程score_into_webpage,从而到Oracle DBServer中查询出所需的数据,再通过该过程动态生成的HTML在Web浏览器中显示出来。

4、 结束语

 

作为一个大型数据库服务器,Oracle提供了一个面向网络的开发工具、应用服务器和数据库服务器的综合平台。本文利用其标准PL/SQL和内置程序包并结合WebServer讨论了基本的Oracle动态Web的开发和应用。

 

【编辑推荐】

  1. 在Oracle 8x中实现自动断开后再连接的实现
  2. Oracle NLS_LANG设置的具体操作方法
  3. Oracle job interval 参数设置示例
  4. 获得Oracle权限的TABLE FUNCTION实操
  5. Oracle数据插入的性能优化的描述

 

责任编辑:佚名 来源: 互联网
相关推荐

2010-04-20 08:53:42

Oracle左连接

2010-04-21 15:02:50

Oracle使用游标

2010-04-28 11:56:09

Oracle临时表

2010-04-19 11:19:50

Oracle基本

2010-04-19 09:35:58

Oracle细粒度

2009-03-25 10:48:08

存储银行Oracle

2009-07-17 17:16:48

Spring iBAT

2009-07-09 17:33:39

2009-08-18 10:17:25

C#枚举类型

2010-03-02 13:43:01

WCF事务演示

2010-05-27 09:38:59

MySQL Grant

2010-05-18 09:02:55

MySQL条件查询

2010-04-15 16:50:58

Oracle动态SQL

2010-04-01 13:09:12

Oracle中join

2009-03-12 15:32:49

WEB开发

2010-04-20 15:16:02

Oracle实例

2010-07-21 09:50:12

SQL Server子

2009-08-18 13:30:01

C#安装与部署

2010-07-05 15:04:36

SQL Server删

2010-09-09 22:41:18

点赞
收藏

51CTO技术栈公众号