Web 瀏覽器 ←→ Internet ←→ Web Server ←→ CGI/API ←→ Oracle DB Server
中介軟體管理通訊、提供應用服務、調用外部程式存取資料庫、輸出動態 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''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;
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;
SCOREFORM 顯示輸入表單SCORE_INTO_WEBPAGEOracle 提供開發工具、應用伺服器、資料庫伺服器一體化平台。善用標準 PL/SQL 與內建套件結合 WebServer,可快速建構動態 Web 資料庫應用。