表 StScroe:學生成績信息
ClassNo (VARCHAR2) -- 班級號
... 其他成績字段
Oracle 存儲過程無直接返回值,集合結果需通過 REF CURSOR 輸出,且必須定義在 Package 規範 中。
CREATE OR REPLACE PACKAGE TESTPACKAGE AS
TYPE Test_CURSOR IS REF CURSOR;
END TESTPACKAGE;
CREATE OR REPLACE PROCEDURE p_STSCORE (
Class IN VARCHAR2,
p_CURSOR OUT TESTPACKAGE.Test_CURSOR
) IS
BEGIN
OPEN p_CURSOR FOR
SELECT * FROM FR.STSCORE WHERE STSCORE.ClassNo = Class;
END p_STSCORE;
p_STSCORE。Class 綁定報表參數或固定值;p_CURSOR 類型選「游標/結果集」。REF CURSOR 必須在 Package 中定義類型,否則編譯報 PLS-00320。IN 輸入、OUT 輸出游標,無 IN OUT。FETCH 游標所有行填充內存數據集,大結果集需注意堆內存。