首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 動態 Web 開發實戰:利用 PL/SQL 與 WebServer 建立資料庫應用

     編輯:Oracle 資料庫基礎

前言

Oracle 8 伺服器不僅是龐大資料的儲存倉庫,更提供了完善的資訊管理環境。透過其內建的 WebServer 選件,開發人員能輕鬆實現 Web 資料庫應用。本文將深入探討如何運用 Oracle PL/SQL 及其強大的內建套件(如 HTP、HTF、OWA_UTIL),結合中介軟體架構,快速建構動態網頁應用。

架構概覽:中介軟體模式

典型的 Web 資料庫應用架構如下:

Web 瀏覽器 ←→ Internet ←→ Web Server ←→ CGI/API ←→ Oracle DB Server

中介軟體負責管理 Web Server 與 DB Server 之間的通訊,並提供應用程式服務。它能直接呼叫外部程式或腳本存取資料庫,進而產生動態 HTML 頁面、執行使用者查詢,並將結果格式化為 HTML 回傳給瀏覽器。

核心技術:PL/SQL 與內建套件

PL/SQL 是 Oracle 從版本 6 起支援的程序性語言,也是所有 Oracle 工具的標準程式語言。它支援三大核心功能:

  • 預存程序:儲存在資料庫中,執行特定業務邏輯的程式碼區塊。
  • 資料庫觸發器:由應用程式事件自動觸發執行的程式碼。
  • 套件:將多個程序組合為單一程式單元,便於管理與重用。

內建套件(如 HTP、HTF、OWA_UTIL)預先編譯並儲存於資料庫,可在 PL/SQL 區塊中直接呼叫,支援直接輸出 HTML、讀寫作業系統檔案、執行動態 SQL 等功能。

實作範例:動態成績查詢系統

步驟 1:建立查詢程序 score_into_webpage

此程序接收考生代碼,查詢資料庫並動態生成 HTML 表格回傳結果。

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 Score Information');
  HTP.HEADCLOSE;
  HTP.BODYOPEN(cattributes => 'bgcolor="#808000"');
  HTP.TABLEOPEN(border => 1);
  HTP.TABLECAPTION('Score Information', 'center');
  HTP.TABLEROWOPEN;
  HTP.TABLEHEADER('Student Code');
  HTP.TABLEHEADER('Student Name');
  HTP.TABLEHEADER('Student Score');
  HTP.TABLEROWCLOSE;

  FOR score_rec IN score_cursor LOOP
    HTP.TABLEROWOPEN;
    HTP.TABLEDATA(score_rec.code);
    HTP.TABLEDATA(score_rec.name);
    HTP.TABLEDATA(score_rec.score);
    HTP.TABLEROWCLOSE;
  END LOOP;

  HTP.TABLECLOSE;
  HTP.BODYCLOSE;
  HTMLCLOSE;
END;

步驟 2:建立輸入表單程序 ScoreForm

提供使用者輸入考生代碼的表單,採用 GET 方式提交至 score_into_webpage。

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.FORMOPEN('score_into_webpage', cmethod => 'GET');
  HTP.TABLEOPEN('border');
  HTP.TABLEROWOPEN;
  HTP.TABLEDATA('Enter Student Code');
  HTP.TABLEDATA(HTF.FORMTEXT('code_in', 5, 5));
  HTP.TABLEROWCLOSE;
  HTP.TABLEROWOPEN;
  HTP.TABLEDATA(HTF.FORMSUBMIT);
  HTP.TABLEDATA(HTF.FORMRESET);
  HTP.TABLEROWCLOSE;
  HTP.FORMCLOSE;
  HTP.BODYCLOSE;
  HTP.HTMLCLOSE;
END;

總結

Oracle 提供了整合開發工具、應用伺服器與資料庫伺服器的綜合平台。善用標準 PL/SQL 與內建套件,配合 WebServer,即可高效開發動態 Web 應用,滿足企業級資料發布與查詢需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved