子任務1:假設實際應用:資料庫中表t_student存盤學生的基本資訊,表t_course存盤學生成績的資訊,此2個表通過學生學號(sNo)欄位關聯,表t_ apply已經存盤了提出免考申請的串列
免考規則是:學生可以根據通過英語4級、6級、8級免考學位英語課程,通過英語4級相當于學位英語成績為75分,通過英語6級相當于學位英語成績為85分,通過英語8級相當于學位英語成績為95分。也可以根據導師的書面批準,申請免考其他課程。
免考申請的資訊包括:學生學號,申請免考課程編號,申請免考課程對應分數,申請免考原因,狀態(包括待處理、已同意、已駁回,默認為待處理)
設計資料庫結構。并實作如下的“免考辦理”存盤程序:傳入申請單id、申請是否被批準,存盤程序將設定免考是否批準的狀態項,修改學生成績表,還應檢查,若是因為應用4、6、8級申請的免考,與規定的對應免考后的課程成績是否正確,若不正確,按正確的執行。
子任務2:撰寫測驗用例測驗上述的存盤程序
將每個用例寫為一個存盤程序,應該該在存盤程序添加測驗資料,在呼叫申請辦理的存盤程序后,又需要在存盤程序中驗證執行后的資料是否正確,這樣的測驗用例才是背景關系無關的。用例的功能串列:
1、 清空學生表
2、 清空學生成績表
3、 清空免考申請表
4、 在學生表中插入一條記錄
5、 在免考申請表中插入一條記錄
6、 呼叫免考辦理的存盤程序
7、 驗證學生成績表中的資料是否正確
8、 回傳測驗結果
uj5u.com熱心網友回復:
CREATE OR REPLACE PROCEDURE PROP_APPLY_FOR_NOEXAMPLE(applyNo in varchar2(32),isApproval in boolean)
as v_sNO varchar2(32);
v_cNO varchar2(32);
v_score varchar2(5);
v_reason varchar2(100);
v_state char(1);
begin
select 學生學號,申請免考課程編號,申請免考課程對應分數,申請免考原因,狀態 into v_sNO,v_cNO,v_score,v_reason,v_state where 申請單id=applyNo;
while v_state==已同意 && 申請免考課程編號==英語 loop
if v_reason==四級 then
v_score:=75
end if;
if v_reason==六級 then
v_score:=85
end if;
if v_reason==八級 then
v_score:=95
end if;
update t_course set 成績=v_score where sNo=v_sNO;
end loop;
end;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/70782.html
標籤:基礎和管理
上一篇:做個有意思的小測驗,rman恢復時報錯,麻煩各位朋友看看是什么錯
下一篇:oracle 資料庫查詢問題
