品教教育网
您的当前位置:首页PL SQL考试题目

PL SQL考试题目

来源:品教教育网
 PL/SQL考试题目

1、完成以下PL/SQL块,功能是:显示2 50的25个偶数。

BEGIN

FOR________ IN _________

LOOP

DBMS_OUTPUT.PUT_LINE(even_number*2)

END LOOP

END

答案:

even_number 1 .. 25

2、完成以下PL/SQL块,功能是:使用游标,显示所有单价低于250元的玩具的单价。

DECLARE

my_toy_price toys.toyprice%TYPE;

CURSOR toy_cur IS

SELECT toyprice FROM toys

WHERE toyprice<250;

BEGIN

______________

LOOP

________________________________________

EXIT WHEN toy_cur%NOTFOUND;

DBMS_OUTPUT.PUT_LINE (toy_cur%ROWCOUNT || '. 玩具单价:' || my_toy_price);

END LOOP;

CLOSE toy_cur;

END;

答案:

OPEN toy_cur FETCH toy_cur INTO my_toy_price;

3、找出emp表中的dept表没有的dept_no 使用Exists方式实现

即改写select * from emp a where a.dept_no not in (select b.dept_no from dept b)

答:

参:

SELECT *

FROM EMP A

WHERE NOT EXISTS

(SELECT 1 FROM DEPT B WHERE A.DEPT_NO = B. DEPT_NO)

4、现有 dept表有字段code,code的数据结构是H.+序号(9位数字)

用户输入的参数:序号为p_num

select t.* from dept t where substr(t.code,3)= p_num;

上面的SQL语句写法是否合理,如不合理请写你优化上面的语句?

答:

select t.* from dept t where t.code= H.||p_num;

5、有Table1,Table2两表,Table2Table1的从表,Table1表有字段head_id(主键)和head_name,Table2表有字段Line_id(主键),head_id(外键),line_name,现要求查询统计出有那些hand_name在Table2表中有2条以上的数据。请写出你的SQL语句。

答:

select t1.head_name, count(1)

from Table1 t1, Table2 t2

where t1. head_id = t2. head_id

group by t1.head_name

having count(1)>2

6、emp表有主键字段empno,现需要查询empno为100的ename,并赋值给变量v_ename,请写出PL/SQL块实现该功能,要求在PL/SQL块中能够捕捉到不存在记录的异常和其它未知异常,并显示出来。

答:

DECLARE

V_ENAME VARCHAR2(100);

BEGIN

SELECT ENAME INTO V_ENAME FROM EMP WHERE EMPNO = 100;

EXCEPTION

WHEN NO_DATA_FOUND THEN

dbms_output.put_line('不存在记录');

WHEN OTHERS THEN

dbms_output.put_line('存在其它未知的异常');

END;

7编写PL/SQL块,用for循环计算20的阶乘

答:

declare

r number;

begin

r := 1;

for i in 1 .. 20 loop

r := r * i;

end loop;

dbms_output.put_line(r);

end;

因篇幅问题不能全部显示,请点此查看更多更全内容