设某教学数据库包含下面3个表
create table student(
sno varchar2(10) constraint pk_student primary key,
sname varchar2(20),
age number,
dept varchar2(10)
);
create table course(
cno varchar2(10) constraint pk_course primary key,
cname varchar2(10),
precno varchar2(10), - - 先行课
constraint fk_course foreign key(precno) references course(cno)
);
create table sc(
sno varchar2(10) constraint fk_sc1 references student(sno),
cno varchar2(10) constraint fk_sc2 references course(cno),
grade number,
constraint pk_sc primary key(sno,cno)
);针对Student、Course和Sc表,用存储过程实现: 修改指定学生的学号
数据库主键学号存储过程

解决方案 »

  1.   

    create procedure updateSNO(sno_old IN varchar2,sno_new IN varchar2)
    AS 
    varname varchar2(20);
    varage number;
    vardept varchar2(20);
    BEGIN
    select sname ,age ,dept into varname,varage,vardept from student where sno=sno_old;
    insert into student(sno,sname,age,dept) Values(sno_new,varname,varage,vardept);
    update sc set sno=sno_new where sno=sno_old;
    delete from student where sno=sno_old;
    END;
    难道你是科大软院的学生???