oracle 儲存過程例1

2021-04-19 08:45:27 字數 3323 閱讀 6852

一、功能設計

開發目標研究生招生系統,要求設計pl/sql程式對考生的成績資料進行處理,處理的邏輯是根據每門專業課的最低分數線和總分的最低分數線自動將考生歸類為錄取考生、調劑考生、落選考生。

為此設計2個資料表,graduate資料表存放考生成績,result資料表存放處理結果,pl/sql程式完成的功能就是將graduate資料表中的資料逐行掃瞄,根據分數線進行判斷,計算各科總分,在result資料表中將標誌字段自動新增上「錄取」或「落選」。

二、資料表設計

graduate資料表結果如下:

圖略result資料表結構如下;

圖略1、建立graduate資料表mis_01.sql

create table "scott"."graduate" (

"bh" number(10) not null,

"xm" varchar2(10) not null,

"lb" varchar2(10) not null,

"yingyu" number(4,1) not null,

"zhengzhi" number(4,1) not null,

"zhuanye1" number(4,1) not null,

"zhuanye2" number(4,1) not null,

"zhuanye3" number(4,1) not null)

tablespace "users"

2、建立result資料表mis_02.sql

create table "scott"."result"

( "bh" number(10) not null,

"xm" varchar2(10) not null,

"lb" varchar2(10) not null,

"yingyu" number(4,1) not null,

"zhengzhi" number(4,1) not null,

"zhuanye1" number(4,1) not null,

"zhuanye2" number(4,1) not null,

"zhuanye3" number(4,1) not null,

"totalsore" number(5,1) not null,

"flag" varchar2(4) not null)

tablespace "users"

3、錄入資料mis_03.sql

insert into "scott"."graduate"

("bh","xm","lb","yingyu","zhengzhi","zhuanye1","zhuanye2","zhuanye3")

values (2003080520,'張三丰','碩士',55,56,67,78,89);

insert into "scott"."graduate"

("bh","xm","lb","yingyu","zhengzhi","zhuanye1","zhuanye2","zhuanye3")

values (2003060555,'張翠山','碩士',66,78,78,89,92);

insert into "scott"."graduate"

("bh","xm","lb","yingyu","zhengzhi","zhuanye1","zhuanye2","zhuanye3")

values (2003056066,'張無忌','碩士',76,67,89,90,66);

insert into "scott"."graduate"

("bh","xm","lb","yingyu","zhengzhi","zhuanye1","zhuanye2","zhuanye3")

values (2003010989,'趙敏','碩士',45,59,74,66,56);

insert into "scott"."graduate"

("bh","xm","lb","yingyu","zhengzhi","zhuanye1","zhuanye2","zhuanye3")

values (2003050677,'周芷若','碩士',77,67,72,87,66);

insert into "scott"."graduate"

("bh","xm","lb","yingyu","zhengzhi","zhuanye1","zhuanye2","zhuanye3")

values (2003869401,'小昭','碩士',56,67,56,64,34);

insert into "scott"."graduate"

("bh","xm","lb","yingyu","zhengzhi","zhuanye1","zhuanye2","zhuanye3")

values (2003340987,'阿離','碩士',68,93,64,80,56);

insert into "scott"."graduate"

("bh","xm","lb","yingyu","zhengzhi","zhuanye1","zhuanye2","zhuanye3")

values (2003056709,'宋元橋','碩士',90,68,81,61,67);

insert into "scott"."graduate"

("bh","xm","lb","yingyu","zhengzhi","zhuanye1","zhuanye2","zhuanye3")

values (2003100894,'殷素素','碩士',69,73,62,70,75);

4、程式設計

建立處理過程scott.graduateprocess.sql

5、主程式設定

主程式mainprcess呼叫名為graduateprocess的國車公來完成處理,**設計如下

set serveroutput on

declare

score1 number(4,1);

score2 number(4,1);

score3 number(4,1);

score4 number(4,1);

score5 number(4,1);

scoretotal number(5,1);

begin

score1:=50;

score2:=56;

score3:=60;

score4:=62;

score5:=64;

scoretotal:=325;

scott.graduateprocess(score1,score2,score3,score4,score5,scoretotal);

end;

6、採用執行主程式即可完成結果,可以在資料結果表中檢視程式執行結果。

Oracle 儲存過程 1

建立時的基本定義與呼叫注 create or replace 沒有就建立,有的話就更新。sql create or replace procedure helloworld as 2 begin 3 dbms output.put line hello world 4 end helloworld ...

Oracle 儲存過程練習小樣例

建立更新的儲存過程,輸錯訂單號顯示訂單不存在 create or replace procedure upd shipdate orderid number,shipdate date ise no row exception begin update ord set v shipdate ship...

oracle儲存過程和儲存函式(1)

第乙個儲存過程 create orreplace procedure sayhelloworld asbegin dbms output.put line hello world end 呼叫儲存過程 1.execute exec 2.在儲存過程中呼叫 begin sayhelloworld end...