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

Oracle WebServer 與 PL/SQL 打造動態 Web 資料庫應用

     編輯:Oracle 資料庫基礎

架構模式:中介軟體整合 Web 與資料庫

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

中介軟體管理通訊、提供應用服務、調用外部程式存取資料庫、輸出動態 HTML 或格式化查詢結果。

PL/SQL 核心能力

  • 預存程序: 儲存於資料庫,執行特定業務邏輯
  • 資料庫觸發器: 事件驅動自動執行
  • 套件: 多程序組合為單一單元
  • 內建套件: HTP/HTF (HTML 標籤產生)、OWA_UTIL (工具)、UTL_FILE (檔案 I/O)、DBMS_SQL (動態 SQL)

實戰案例:網上成績查詢系統

1. 動態網頁產生程序


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="#808000"');
  HTP.TABLEOPEN('BORDER');
  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;
  HTP.HTMLCLOSE;
END;

2. 輸入表單程序


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;

運作流程

  1. 用戶瀏覽器呼叫 SCOREFORM 顯示輸入表單
  2. 輸入考生代號送出,GET 方式傳遞參數呼叫 SCORE_INTO_WEBPAGE
  3. 程序查詢資料庫,HTP 套件動態產生 HTML 表格回傳瀏覽器

結語

Oracle 提供開發工具、應用伺服器、資料庫伺服器一體化平台。善用標準 PL/SQL 與內建套件結合 WebServer,可快速建構動態 Web 資料庫應用。

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