内容发布更新时间 : 2024/11/17 1:38:38星期一 下面是文章的全部内容请认真阅读。
WHERE deptno='10';
DBMS_OUTPUT.PUT_LINE(r1.deptno||','||r1.dname||','||r1.loc); END;
3、写出以下程序块的功能: SET SERVEROUTPUT ON DECLARE
score float:=&score; BEGIN
IF score<0 OR score>100 THEN
DBMS_OUTPUT.PUT_LINE('成绩不合理'); ELSIF score>=60 then
DBMS_OUTPUT.PUT_LINE('合格'); ELSE
DBMS_OUTPUT.PUT_LINE('不合格'); END IF; END;
4、写出以下程序块的功能: SET SERVEROUTPUT ON DECLARE
j NUMBER:=1; i NUMBER:=1;
BEGIN
11
LOOP j:=j* i; i:= i+1;
EXIT WHEN i>10;
END LOOP;
DBMS_OUTPUT.PUT_LINE(j); END;
5、写出以下程序块的输出结果: SET SERVEROUTPUT ON DECLARE
s NUMBER:=0;
BEGIN FOR i IN REVERSE 1..5 LOOP
s:=s+i;
DBMS_OUTPUT.PUT_LINE('i='||i)
END LOOP;
DBMS_OUTPUT.PUT_LINE('1--5的和为:END;
6、写出以下程序块的功能: SET SERVEROUTPUT ON DECLARE
n NUMBER;
12
'||s); CURSOR staff3_cursor IS SELECT * FROM staff WHERE ssex='男'; --声明游标
c1 staff3_cursor%rowtype;--定义参考游标结构的记录变量 BEGIN
select count(*) into n from staff where ssex='男'; OPEN staff3_cursor; --打开游标 FOR i in 1..n LOOP
FETCH staff3_cursor into c1; --提取游标数据行 DBMS_OUTPUT.PUT_LINE(c1.sno||', ' ||c1.sname||','||c1.sbirthday); END LOOP;
CLOSE staff3_cursor; --关闭游标 END;
7、写出下列存储过程的功能: CREATE PROCEDURE staff2_pro
(c1 IN CHAR,v1_staff OUT staff%ROWTYPE)
AS BEGIN
SELECT * INTO v1_staff FROM staff
WHERE sno=c1; END;
8、写出下列触发器的功能:
13
CREATE TRIGGER staff_trig
AFTER INSERT OR UPDATE OR DELETE ON staff FOR EACH ROW BEGIN
IF INSERTING THEN
DBMS_OUTPUT.PUT_LINE('正在向staff表插入数据!'); ELSIF UPDATING THEN
DBMS_OUTPUT.PUT_LINE('正在staff中更新数据!'); ELSIF DELETING THEN
DBMS_OUTPUT.PUT_LINE('正在staff删除数据!'); END IF; END;
六、编写程序
1、利用标准CASE语句根据grade变量的值ABCDE分别输出“优秀”、“良好”、“中等”、“及格”、“不及格”。
2、使用while循环,编程计算并输出n! 。n从键盘输入。 3、将第五题中第6小题改写成带参数游标并使用while循环来实现。 4、将第五题中第6小题改写成不带参数的游标FOR循环来实现。 5、编写存储过程swap交换两个参数,并写出调用程序。 6、利用存储函数staff_func重做第五题第7小题。
14
参 考 答 案
一、选择题 1. A 2. B 3. BA 4. D 5. B 6. A 7. D 8. C 9. A 10. A 11. B 12. C 13. B 14. B 15. B 16. D 17. B 18. C 19. A 20. D
15