dbms_output.put_line(mysname||'学生birthday值无值。'); else
update student set sage=months_between(sysdate,mybir)/12 where sno=mysno ; end if; end;
//调用 declare
mysname student.sname%type; mybir student.birthday%type; mysage student.sage%type; begin
my('0202',mysname,mybir,mysage); end;
1、已知学院成绩管理系统中有如下关系表:学生表 students ( student_number ,student_name , major_name, current_credits ); 课程表course( course_name , description, max_students , current_students , num_credits ); 成绩表SC (student_number ,course_name ,grade );其中student_number 学号,student_name学生姓名, major_name 专业名, current_credits当前所选修学分,course_name课程名称,description 课程描述,max_students最大选修的学生人数,current_students当前选修的学生人数,num_credits学分数,grade 成绩。基于以上成绩管理系统中的关系表,写一个过程,传入某学生的学号,打印出该生选修的所有的课程名。
答: create or replace procedure cur_courses(stuID in SC.student_number%type ) Is
courName SC.course_name; CURSOR courses _cursor IS
Select cour_name from SC where SC.student_number=stuID;
Begin
OPEN courses _cursor;
LOOP
FETCH courses _cursor INTO courName ; EXIT WHEN v_emp_cursor%NOTFOUND; DBMS_OUTPUT.PUT_LINE(courName ); END LOOP;
CLOSE v_emp_cursor; End;
第一题的黄淮学院成绩管理系统中相关表,请编写触发器完成以下功能:当对SC表执行插入操作的时候,应相应的对students和classes表的相应字段更新。比如,当向SC表插入一行数据时,则该生的当前所选修学分(current_credits)字段应增加,同时,对应的课程的当前学生数(current_student)字段也应增加。 create or replace trigger t_student After insert on sc for each ROW DECLARE
v_cnt NUMBER; BEGIN
SELECT COUNT(*) INTO v_cnt IF v_cnt = 0 THEN
INSERT INTO student (student_number) VALUES
(:NEW.student_number); INSERT INTO course (current_students) VALUES
(:NEW. current_students); END IF;
END t_student;
FROM student;
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据库应用技术复习题(3)在线全文阅读。
相关推荐: