最近学校要求做一个学生信息查询系统,我负责oracle部分。
共两个表,学生表和部门表,实现插入,删除,修改功能。
创建表和触发器部分的代码写好了,存储过程怎么写啊?
各位大虾,指点一下。
创建学生表:
create table student(
studentid varchar2(4) constraint pk_2 primary key,
name varchar2(10),
sex varchar2(10),
birthday date,
status varchar2(20),
into_day date,
departmentid  varchar2(1),
constraint ys_2 unique(studentid),
constraint fk_2 foreign key(departmentid) references department(departmentid)  
);
创建部门表:
create table department(
departmentid varchar2(1) constraint pk_1 primary key,
departmentname varchar(20),
address varchar(10),
phonenumber varchar(8),
charger varchar(10),
constraint ys_1 unique(departmentid) 
);输入学生信息(可能与表格内容不一样,没关系以输入信息为准) :
insert into student(studentid,name,sex,birthday,status,into_day,departmentid)
values(0001,'小明','男','12-2月-83','团员','23-9月-02','0');
insert into student(studentid,name,sex,birthday,status,into_day,departmentid)
values(0002,'小白','男','18-3月-83','团员','23-9月-02','1');
insert into student(studentid,name,sex,birthday,status,into_day,departmentid)
values(0003,'小兰','女','20-12月-84','团员','23-9月-02','1');
insert into student(studentid,name,sex,birthday,status,into_day,departmentid)
values(0004,'小黑','男','16-7月-83','团员','23-9月-02','0');
insert into student(studentid,name,sex,birthday,status,into_day,departmentid)
values(0005,'小红','女','124-1月-83','党员','23-9月-02','1');
insert into student(studentid,name,sex,birthday,status,into_day,departmentid)
values(0006,'李明','男','21-11月-82','团员','23-9月-02','0');
insert into student(studentid,name,sex,birthday,status,into_day,departmentid)
values(0007,'莎拉波娃','女','18-3月-85','党员','23-9月-02','0');
insert into student(studentid,name,sex,birthday,status,into_day,departmentid)
values(0008,'罗迪克','男','25-6月-83','党员','23-9月-02','0');
insert into student(studentid,name,sex,birthday,status,into_day,departmentid)
values(0009,'费德勒','男','30-4月-83','团员','23-9月-02','0');
insert into student(studentid,name,sex,birthday,status,into_day,departmentid)
values(0010,'阿加西','男','28-6月-83','团员','23-9月-02','1');输入部门信息:
insert into department(departmentid,departmentname,address,phonenumber,charger)
values (0,'计算机科学','北区','87401120','李红');
insert into department(departmentid,departmentname,address,phonenumber,charger)
values (1,'计算机教育','南区','87401160','王维');触发器
1.修改数据触发器
create or replace trigger check_update
before
update
on student
for each row
begin
if(:new.studentid=old.studentid or:new.studentid>10000) and (:new.departmentid<0 or :new.departmentid>1) then
raise_application_error(-20001,'修改出错,操作取消!');
endif;
end;2.插入触发器
create or replace trigger check_insert
before
insert
on student
for each row
begin
if(:new.studentid=old.studentid or:new.studentid>10000) and (:new.departmentid<0 or :new.departmentid>1) then
raise_application_error(-20002,'插入出错,操作取消!');
endif;
end;
3.删除触发器
create or replace trigger check_delete
before
delete
on student
for each row
begin
if old.studentid=null then
raise_application_error(-20003,'删除出错,数据不存在!');
endif;
end;以上代码有错误的麻烦给指出来,还有存储过程怎么写,各位大虾给点指导,呵呵,谢过了 ~