国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

Oracle數(shù)據(jù)庫中基本動態(tài)Web開發(fā)和應(yīng)用

2024-08-29 13:33:45
字體:
供稿:網(wǎng)友
1、用Oracle WebServer構(gòu)建Web數(shù)據(jù)庫應(yīng)用 Oracle 8服務(wù)器是一個完善的信息治理環(huán)境。它是一個大量數(shù)據(jù)的儲藏所,并給用戶提供對這些數(shù)據(jù)的快速訪問。它能夠支持C/S結(jié)構(gòu)進(jìn)行分布式處理和Web計算等。利用其服務(wù)器選件之一的WebServer,可以提供實現(xiàn)Web數(shù)據(jù)庫應(yīng)用的強(qiáng)大功能。 一般來說,實現(xiàn)Web數(shù)據(jù)庫應(yīng)用可以在WebServer端提供CGI/API等中間件來連接WebServer 和DB Server,也可以讓用戶通過Web瀏覽器把相關(guān)應(yīng)用下載到客戶端運行,在客戶端直接訪問數(shù)據(jù)庫,如java Applet,Active X,Plug-in等。本文主要介紹利用Oracle 8 提供的PL/SQL和其功能強(qiáng)大的內(nèi)置程序包來編寫程序以實現(xiàn)動態(tài)的Web應(yīng)用。屬于利用中間件開發(fā)的一種。中間件負(fù)責(zé)治理WebServer和DBServer之間的通信并提供給用程序服務(wù),它能夠直接調(diào)用外部程序或腳本代碼來訪問數(shù)據(jù)庫,因此可以提供與數(shù)據(jù)庫相關(guān)的動態(tài)Html頁面,或執(zhí)行用戶查詢,并將查詢結(jié)果格式化成HTML頁面再通過WebServer返回給用戶瀏覽器。其一般結(jié)構(gòu)如下所示: Web瀏覽器 ←→ Internet ←→ Web Server ←→ CGI/API ←→ Oracle DB Server 2、PL/SQL Oracle從其版本6開始支持一種過程處理語言PL/SQL,并將其作為所有Oracle工具的標(biāo)準(zhǔn)編程語言,從而所有的過程組件在Oracle服務(wù)器產(chǎn)品中都能實現(xiàn)。用PL/SQL可以實現(xiàn)下述重要功能: 存儲過程,即存放在Oracle數(shù)據(jù)庫中的程序(或代碼段)并為你的機(jī)構(gòu)完成特定的重要工作; 數(shù)據(jù)庫觸發(fā)器,即存放在數(shù)據(jù)庫中的代碼,可由應(yīng)用所產(chǎn)生的事件觸發(fā); 程序包,即把多個過程組合在一起當(dāng)作單個程序單元的代碼存放在數(shù)據(jù)庫中。 其中內(nèi)置程序包是預(yù)先生成的,存儲在數(shù)據(jù)庫中,且能在PL/SQL代碼塊中調(diào)用的根據(jù)需求可以傳遞參數(shù)的程序。它可以完成把結(jié)果直接輸出到終端窗口;直接從操作系統(tǒng)文件讀寫數(shù)據(jù);執(zhí)行動態(tài)的SQL等多項功能。常用的如HTP,HTF,OWA-UTIL等。下面將通過一個動態(tài)的網(wǎng)上查詢分?jǐn)?shù)的實例來說明其在動態(tài)Web中的應(yīng)用。 3、利用WebServer和PL/SQL開發(fā)動態(tài)Web實例 現(xiàn)有一考生成績庫需在網(wǎng)上向用戶提供查詢成績的功能。首先可考慮利用HTP程序包根據(jù)用戶輸入的考生號到數(shù)據(jù)庫中查詢相應(yīng)的信息,返回一個網(wǎng)頁。代碼如下: 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');

--固定地顯示頁標(biāo)題、標(biāo)題、表頭等信息,每次調(diào)用此頁時顯示的信息

--是相同的

Htp.tablerowclose;

For score_rec in score_cur

Loop

--利用游標(biāo)的For循環(huán)為游標(biāo)在網(wǎng)頁中產(chǎn)生一個數(shù)據(jù)行

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;
通過以上代碼,我們有了一個基本的用數(shù)據(jù)庫中的數(shù)據(jù)動態(tài)的生成一個網(wǎng)頁的方法,下面將建立一個簡單的表單。在表單中調(diào)用上述程序和接受用戶輸入的考生號碼,從而在客戶端向用戶動態(tài)地顯示從數(shù)據(jù)庫中查詢的信息。 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');

--打開ScoreForm表單。缺省情況下Score_into_webpage PL/SQL過程用GET

--方法調(diào)用。GET方法在URL里顯示傳遞的參數(shù)。

Htp.tableopen ('border');

Htp.tablerowopen;

Htp.tabledata ('Enter Student Code');

Htp.tabledata (htf.formtext ('code_in',5,5));

--用一個文本框提示用戶輸入考號。文本框的名字必須與調(diào)用過程里的輸入

--參數(shù)相同。

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; 上述過程在客戶端被調(diào)用后產(chǎn)生的HTML即可顯示一動態(tài)表單接受用戶輸入的考號,然后傳遞給調(diào)用的過程score_into_webpage,從而到Oracle DBServer中查詢出所需的數(shù)據(jù),再通過該過程動態(tài)生成的HTML在Web瀏覽器中顯示出來。 4、結(jié)束語 作為一個大型數(shù)據(jù)庫服務(wù)器,Oracle提供了一個面向網(wǎng)絡(luò)的開發(fā)工具、應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器的綜合平臺。本文利用其標(biāo)準(zhǔn)PL/SQL和內(nèi)置程序包并結(jié)合WebServer討論了基本的動態(tài)Web的開發(fā)和應(yīng)用。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 桦川县| 台南县| 云南省| 余姚市| 临漳县| 南木林县| 永嘉县| 滨海县| 韶关市| 无为县| 漳州市| 桓台县| 竹溪县| 祁东县| 江北区| 平安县| 韶关市| 苍南县| 新竹县| 咸宁市| 吴桥县| 三门县| 册亨县| 修水县| 洮南市| 泸水县| 平远县| 鄂伦春自治旗| 永善县| 睢宁县| 郁南县| 兴仁县| 晋宁县| 扶沟县| 江源县| 丽江市| 莎车县| 青铜峡市| 永修县| 诸暨市| 神池县|