程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle基本的動態Web開發的實際操作

Oracle基本的動態Web開發的實際操作

編輯:Oracle數據庫基礎

以下的文章主要是介紹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之間的通信並提供應用程序服務,它能夠直接調用外部程序或腳本代碼來訪問數據庫,因此可以提供與數據庫相關的動態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等。下面將通過一個動態的網上查詢分數的實例來說明其在動態Web中的應用。

3、利用WebServer和PL/SQL開發動態Web實例

現有一考生成績庫需在網上向用戶提供查詢成績的功能。首先可考慮利用HTP程序包根據用戶輸入的考生號到數據庫中查詢相應的信息,返回一個網頁。代碼如下:

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

固定地顯示頁標題、標題、表頭等信息,每次調用此頁時顯示的信息是相同的

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

利用游標的For循環為游標在網頁中產生一個數據行

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

通過以上代碼,我們有了一個Oracle基本的用數據庫中的數據動態的生成一個網頁的方法,下面將建立一個簡單的表單。在表單中調用上述程序和接受用戶輸入的考生號碼,從而在客戶端向用戶動態地顯示從數據庫中查詢的信息。

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

打開ScoreForm表單。缺省情況下Score_into_webpage PL/SQL過程用GET方法調用。GET方法在URL裡顯示傳遞的參數。

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

用一個文本框提示用戶輸入考號。文本框的名字必須與調用過程裡的輸入參數相同

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

上述過程在客戶端被調用後產生的HTML即可顯示一動態表單接受用戶輸入的考號,然後傳遞給調用的過程score_into_webpage,從而到Oracle DBServer中查詢出所需的數據,再通過該過程動態生成的Html在Web浏覽器中顯示出來。

4、 結束語

作為一個大型數據庫服務器,Oracle提供了一個面向網絡的開發工具、應用服務器和數據庫服務器的綜合平台。本文利用其標准PL/SQL和內置程序包並結合WebServer討論了Oracle基本的動態Web的開發和應用。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved