PL/SQL习题:
1、
下列哪行代码有错误?
1) DECLARE
2) v_name varchar2(40):=’David Clark’; 3) v_id number(4):=1001; 4) v_status BOOLEAN:=FALSE; 5) BEGIN
6) INSERT INTO EMP(id,name,status) 7) values(v_id,v_name,v_status); 8) END; A. 第2行 B. 第3行 C. 第4行 D. 第7行
2、判断些列语句,v_price的值是多少时,将给变量v_grade赋值为’C’?IF v_price>1000 Then
V_grade:='A';
Else If v_price>900 then
V_grade:='B';
Else If v_price>800 then
V_grade:='C';
Else If v_price>600 then
V_grade:='D';
Else
V_grade:='E';
End if;
End if;
End if;
End if;
1
A. v_price大于1000 B. v_price大于800
C. v_price在801和900之间 D. v_price在601和800之间
3、什么情况下将引起while循环中断? A. 当条件的值是NULL时 B. 当条件的值是FALSE时 C. 当条件的值是TRUE时 D. 当执行到EXIT语句时
4、一个IF…THEN…ELSEIF语句可以有多少个else子句? A. 0 B. 1 C. 没有限制 D. 64
5、考虑下列PL/SQL块时,有多少行被加入到numbers中?BEGIN
FOR IX IN 5..10 LOOP
IF IX=6 THEN
INSERT INTO NUMBERS VALUES(IX); ELSE
IF IX=7 THEN
DELETE FROM NUMBERS; END IF; IF IX=7 THEN ROLLBACK; ELSE COMMIT; END IF; END IF; END LOOP;
2
COMMIT; END; A. 6 B. 1 C. 5 D. 0
6、假如C1是PL/SQL块中的定义游标,在游标打开之后,取第一条记录之前,C1%NOTFOUND的值是什么? A. TRUE B. FALSE C. NULL D. 都不是
7、当下列PL/SQL块执行时,V1的值是什么? DECLARE
V0 PLS_INTEGER; V1 BOOLEAN;
BEGIN
BEGIN
SELECT COUNT(*) INTO V0 FROM EMP;
END; BEGIN
V1:=SQL%FOUND;
END;
END; A. NULL B. TRUE C. FALSE D. 代码清单
8、下列代码中哪一行有错误? 1) DECLARE
2) CURSOR C_EMP IS SELECT EMPNO,SAL FROM EMP;
3