Declare sal number:=500;
comm number; Begin
If sal <100 then Comm :=0; Elsif sal <600 then Comm: =sal*0.1;
Elsif sal <1000 then Comm: =sal*0.15;
Else Comm: =sal*0.2; End if; End;
在执行了以上语句之后,变量comm 的结果应是:(B )
A.0 B.50 C.75 D.100
3.在以下哪些语句中可以包含WHERE CURRENT OF 子句?(CE)
A.OPEN B.FETCH C.DELETE D.SELECT E.UPDATE F.CURSOR
4.在异常和oracle错误之间建立关联时,应该在哪个部分完成?(A)
A.定义部分 B.执行部分 C.异常处理部分
5.只能存在一个值的变量是哪种变量?(B )
A.游标 B.标量变量 C.游标变量 D.记录变量
创建一个PL/SQL块,查询出工资水平前n名的员工。具体要求如下:
(1)通过替代变量读取n的值。
(2)通过循环从emp表中获取工资在前n名的员工的姓名和工资
(3)将得到的员工姓名和工资写入top_dogs表。
(4)如果有多名员工的工资相同,则每人都占n名中的一个名额。
(5)测试特殊情况,例如n=0或者n大于员工总数。
(6)每次向top_dogs 表中写入数据前,先清空该表中的数据。
DECLARE CURSOR emp_cursor(n number) IS SELECT ename,sal FROM scott.emp ORDER BY sal DESC;
v_n integer := &n; BEGIN delete from top_dogs; FOR rec IN emp_cursor(v_n) LOOP IF emp_cursor%ROWCOUNT <=v_n THEN insert into top_dogs values(rec.ename,rec.sal);
dbms_output.put_line('ename: '||rec.ename||' sal:'||rec.sal);
ELSIF v_n<=0 or v_n>emp_cursor%ROWCOUNT then dbms_output.put_line('error!'); ELSE EXIT; --退出循环 END IF; END LOOP; END; /「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




