当前位置:首页 > Oracle PLSQL习题
1) DECLARE
2) CURSOR eCUR(en_IN number) IS
3) SELECT * FROM emp WHERE empno=en_in; 4) emp_info ecur%ROWTYPE; 5) BEGIN
6) OPEN ecur(7965);
7) FETCH eCUR INTO emp_info; 8) END; A. 第2行 B. 第3行 C. 第4行 D. 没有引起错误
11、在下列PL/SQL块的第3行将引发一个错误,该错误将在哪儿处理?1)BEGIN
2) DECLARE TIMESTAMP DATE:='SYSDATE'; 3) BEGIN 4)
DBMS_output.put_line('sw'); --CALL_SOME_PROC;
5) EXCEPTION 6) WHEN VALUE_ERROR THEN 7)
DBMS_OUTPUT.PUT_LINE('VALUE ERROR');
8) WHEN OTHERS THEN 9)
DBMS_OUTPUT.PUT_LINE('SOME OTHER ERROR');
10) END; 11)EXCEPTION
12) WHEN OTHERS THEN
13) DBMS_OUTPUT.PUT_LINE('unknown ERROR'); 14)
15)END; A. 第7行 B. 第9行 C. 第13行 D. 第9、13行
5
12、什么类型的异常需要一条RAISE语句 A. 一个命名的异常 B. 一个用户定义异常 C. 一个非命名的异常
D. 在处理异常时从不需要RAISE语句 13、下列PL/SQL代码做了什么工作? INVALID_DATE EXCEPTION;
A. 定义一个异常 B. 引发一个异常 C. 联系一个异常 D. 处理一个异常
(异常信息:SQLCODE< 如:ORA-1422>、SQLERRM) 14、哪些类型的异常不能在出错处理部分进行处理? A. 语法错误 B. 数据库错误
C. 数据类型不匹配错误 D. 被零除错误
15、在下列游标定义中错误是什么? CURSOR C1(PEMPNO IN NUMBER(4)) IS SELECT EMPNO,ENAME FROM EMP WHERE EMPNO=PEMPNO; A. 缺少INTO语句
B. 在游标定义中,变量名前面需要加”:” C. 游标定义中不能指定in
D. 在游标定义中不能指定数据类型的长度 16、EMP表有下列数据
empno ename salary comm deptno 7369 SMITH 800 20 7499 ALLEN 1600 300 30 7521 WARD 1250 500 30 7566 JONES 2975 20 7654 MARTIN 1250 1400 30
6
下列PL/SQL块执行后,V_EMPNO的值是什么?(EMPNO是EMP表的主键)
SET SERVEROUTPUT ON DECLARE
V_EMPNO EMP.EMPNO%TYPE:=800;
CURSOR C_EMPNO(P_EMPNO EMP.EMPNO%TYPE:=7369) IS SELECT EMPNO FROM EMP WHERE EMPNO=P_EMPNO; BEGIN
OPEN C_EMPNO(null);
FETCH C_EMPNO INTO V_EMPNO; CLOSE C_EMPNO;
dbms_output.put_line(v_empno); END; A. 7369 B. 800 C. NULL D. 0
17、参看上题的emp数据,当下列块执行时,V_A的值是什么? DECLARE V_A NUMBER; V_E NUMBER;
CURSOR C1 IS SELECT EMPNO FROM EMP; BEGIN OPEN C1; LOOP
FETCH C1 INTO V_E; V_A:=C1%ROWCOUNT; EXIT WHEN C1%NOTFOUND; END LOOP; CLOSE C1; END; A. 5 B. 6 C. 4
7
D. 0
18、参看上题的emp数据,当下列块执行时,V_COUNT的值是什么? DECLARE
V_COUNT NUMBER; R_EMP EMP%ROWTYPE; BEGIN
SELECT * INTO R_EMP FROM EMP WHERE EMPNO<7700; V_COUNT:=SQL%ROWCOUNT; END;
A. 块内有错,执行将失败 B. 4 C. 5 D. 0
19、参看上面的emp数据,当下列块执行时,将输出什么? Set serveroutput on DECLARE
V_ENAME EMP.ENAME%TYPE; BEGIN
SELECT ENAME INTO V_ENAME FROM EMP WHERE EMPNO=9999; IF SQL%NOTFOUND THEN
DBMS_OUTPUT.PUT_LINE(‘NO SUCH EMPLOYEE NUMBER’);
ELSE
DBMS_OUTPUT.PUT_LINE(V_ENAME); END IF; EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE(‘INVALID EMPLOYEE NUMBER’); END;
A. 块执行时将返回一个错误 B. NO SUCH EMPLOYEE NUMBER C. NO NAME
D. INVALID EMPLOYEE NUMBER
20、考虑下列执行块,当块执行并且没有记录被删除时,V_COUNT的值是什么?
8
共分享92篇相关文档