實驗三 PLSQL程式設計

2021-09-29 00:07:52 字數 2199 閱讀 4948

1.實驗目的

熟悉pl/sql子程式設計。

2. 實驗內容

建立儲存過程pro_studentsnotuptostandar返回指定系部未修夠指定學分的學生 資訊,包括學生的基本資訊,以及學生所有選課的課程資訊和成績。

3.(1)儲存過程pro_studentsnotuptostandar呼叫後的輸出顯示效果如下圖:

(2)儲存過程pro_studentsnotuptostandar的程式流程框架如下:

create or replace procedure pro_studentsnotuptostandar

(p_deptid varchar2,p_standercredit number)

as–定義形參為null時丟擲的使用者自定義異常變數

–定義根據形參部門**查詢指定系部所有學生資訊的游標1;

–定義儲存學生所有學分的變數

–定義儲存當前學生編號變數

–定義根據當前學生編號查詢學生所有選修課程資訊及學生成績的游標2;

begin

–如果形參有為null的情況,丟擲使用者自定義異常

–迴圈遍歷游標1,完成以下任務:

–查詢當前學生獲得的所有學分;

–如果學生的總學分小於形參給出的達標學分,就完成以下任務:

–首先輸出學生的資訊;

–然後遍歷游標2,輸出學生選修的所有課程資訊

exception

–處理使用者自定義異常

end;

(3)**:

--建立儲存過程pro_studentsnotuptostandar返回指定系部未修夠指定學分的學生資訊,包括學生的基本資訊,以及學生所有選課的課程資訊和成績

create or replace procedure pro_studentsnotuptostandar(p_deptid in varchar2,p_standercredit in number)

is null_ex exception;

cursor stus_cur is

select * from students s where s.dept_id=p_deptid;

v_credits number:=0;

v_stuid varchar2(11);

cursor couinfos_cur is select a.*,b.grade from courses a,sc b where b.student_id=v_stuid and a.course_id=b.course_id;

begin

if p_deptid is null or p_standercredit is null then

raise null_ex;

end if;

for stu in stus_cur loop

v_stuid:=stu.student_id;

select sum(c.credits) into v_credits from sc,courses c where c.course_id=sc.course_id and sc.student_id=v_stuid and sc.grade>=60;

if v_credits < p_standercredit then

dbms_output.put_line(stu.student_id||' '||stu.sname||' '||stu.s***||' '||stu.sbirth||''||stu.nationality||' '||stu.dept_id||' '||stu.class_id);

for info in couinfos_cur loop

dbms_output.put_line(info.course_id||' '||info.cname||' '||info.credits||' '||info.grade);

end loop;

end if;

end loop;

exception

when null_ex then dbms_output.put_line('形參不能為空!');

end;

oracle中pl sql程式設計 三

oracle中pl sql程式設計 三 pl sql的控制結構 提供了三種條件的分支語句 a if then b if then else c if then elsif 注意這裡不是elseif else 簡單的條件判斷 if then 案例 編寫乙個過程,可以輸入乙個雇員名,如果該雇員的工資 低...

PLSQL程式設計

create table emomy1 emon varchar2 100 time1 date drop table emomy1 select from emomy1 begin dbms output.put line hello,world end 定義變數 declare name con...

PL SQL程式設計

1.具有程式語言的特點,他能把一組sql語句放到乙個模組中,使去更具有模組的程式的特點 2.採用過程性語言控制程式的結構,也就是說,在pl sql中增強邏輯結構,如迴圈,判斷等程式結構 3.pl sql可以對程式中的錯誤進行自動處理,使程式能夠在遇到錯誤時不會中斷,及他的處理異常機制 4.具有更好的...