Oracle面试题库PLSQLdoc.docx
- 文档编号:24524728
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:11
- 大小:16.93KB
Oracle面试题库PLSQLdoc.docx
《Oracle面试题库PLSQLdoc.docx》由会员分享,可在线阅读,更多相关《Oracle面试题库PLSQLdoc.docx(11页珍藏版)》请在冰豆网上搜索。
Oracle面试题库PLSQLdoc
Oracle面试题库-PL/SQL
1PL/SQL代表
APROCEDURALLANGUAGE/SQL
BPROGRAMLANGUAGESQL
CPOWERLANGUAGESQL
D都不对
2_____引擎执行PL/SQL块
ASQL
BPL/SQL
CORACLE
D都不对
3一个对象可以呈现多种形式的能力称为
A多态
B继承
C封装
D以上都不对
4PLSQL块是由哪几个部分组成
ADECLAREBEGINEND
BBEGINEND
CEXCEPTIONBEGINEND
DDECLAREBEGINEXCEPTIONEND
5看下面代码,正确的是
ADECLARE
DBMS_OUTPUT.PUT_LINE(‘定义部分’);
BEGIN
DBMS_OUTPUT.PUT_LINE(‘语句部分’);
END;
BBEGIN
NUMNUMBER:
=100;
DBMS_OUTPUT.PUT_LINE(‘NUM的值为:
’||NUM);
END;
CDECLARE
NUMNUMBER:
=100;
BEGIN
NUM:
=NUM+NUM/2;
DBMS_OUTPUT.PUT_LINE(‘NUM的值为:
’||NUM);
END;
DBEGIN
NUMNUMBER:
=100;
DECLARE
NUM:
=NUM+NUM/2;
DBMS_OUTPUT.PUT_LINE(‘NUM的值为:
’||NUM);
END;
6看下面语句正确的是
AIF(N%M=0)THEN
DBMS_OUTPUT.PUT_LINE(‘这是一个偶数’);
ELSEIF(N%M=1)THEN
DBMS_OUTPUT.PUT_LINE(‘这是一个奇数’);
ENDIF;
BDECLARE
VARNUMBER:
=0;
BEGIN
VAR:
=&V;
CASE
WHENVAR=1THEN
DBMS_OUTPUT.PUT_LINE(‘A’);
WHENVAR=2THEN
DBMS_OUTPUT.PUT_LINE(‘B’);
ELSE
DBMS_OUTPUT.PUT_LINE(‘O’);
ENDCASE;
END;
CDECLARE
INUMBER:
=0;
BEGIN
FORIIN10..20LOOP
DBMS_OUTPUT.PUT_LINE(I);
ENDLOOP;
END;
DLOOP
DBMS_OUTPUT.PUT_LINE(I);
ENDLOOP;
7.当在一个PLSQL块中通过查询得到一个值,但是没有任何值返回时,会产生异常吗?
如果产生,是什么异常?
A不会有异常,只不过没有结果而已
B有异常,异常为No_data_found
C有异常,异常为Value_erro
D编译都不通过
8.在PLSQL块中处理异常的语句是
AEXCEPTION
IFEXCEPTION_NAMETHEN
DBMS_OUTPUT.PUT_LINE();
END;
BEXCEPTION
WHENEXCEPTION_NAMETHEN
DBMS_OUTPUT.PUT_LINE();
ENDEXCEPTION;
CWHENEXCEPTION_NAMETHEN
DBMS_OUTPUT.PUT_LINE();
DBEGIN
NULL;
EXCEPTION
WHENEXCEPTION_NAMETHEN
DBMS_OUTPUT.PUT_LINE();
END;
9.当用户在PLSQL块中,像抛出自定义异常或者是系统异常时,所使用的关键字是
ATHROW
BRAISE
CRAISE_APPLICATION_ERROR
DEXCEPTION
10.在自定义异常中,用户可用的错误号范围在
A20000~29999
B-20000~-20999
C1~65535
D没有限制
11.阅读代码
DECLARE
BEGIN
DBMS_OUTPUT.PUT_LINE(‘外不快’);
DECLARE
MYEXCEEXCEPTION;
BEGIN
RAISEMYEXCE;
END;
EXCEPTION
WHENMYEXCETHEN
DBMS_OUTPUT.PUT_LINE(‘异常捕获’);
END;
出现的结果是
A编译时报错PLS-00201:
必须说明标识符‘MYEXCE’
B运行时报错,在外部无法捕获到内部异常
C可以正常执行
D编译时报错,PLSQL块不能嵌套
12.使用游标的步骤,有哪几步
A打开游标、使用游标、关闭游标
B定义游标、打开游标、使用游标、关闭游标
C定义游标、使用游标、关闭游标
D定义游标、打开游标、使用游标、
13游标有哪几种类型
A静态游标、动态游标
B隐式游标、显示游标
C变量游标、常量游标
D参数游标、ref游标
14阅读下列代码
DECLARE
TOTALEMPNUMBER;
BEGIN
SELECTCOUNT(*)INTOTOTALEMPFROMEMP;
IF(SQL%FOUND)THEN
DBMS_OUTPUT.PUT_LINE(‘有数据’);
ENDIF;
END;
这段代码中是否使用了游标,如果使用了,使用的是什么类型的游标
A使用了游标,游标类型为参数游标
B使用了游标,游标类型为式游标
C使用了游标,游标类型为ref游标
D这段代码中根本没有使用到游标
15.下列哪个游标的定义是正确的
ATYPECURSOREMPCURISSELECT*FROMEMP;
BTYPEEMPCURISCURSOROFSELECT*FROMEMP;;
CCURSOREMPCURISSELECT*FROMEMP;
DTYPEEMPCURISREFCURSORASSELECT*FROMEMP;
16在存储过程中,参数模式有哪几种
AIN、OUT
BIN、OUT、INOUT
CINPUT、OUTPUT
DOUTINOUT
17关于存储过程返回值的类型,说法对的是
A只能是基本类型
B可以是任何类型
C只能是NUMBERVARCHAR2DATEBOOLEAN
D可以使基本类型和用户类型
18存储过程和函数的区别是
A过程可以返回多个值,而函数只能返回一个值
B函数可以作为PLSQL表达式的一部分,而过程不能
C函数可以返回多个值,过程只能返回一个
D函数和过程都必须包含RETURN语句
19过程和函数的重载,正确的是
AOracle中过程和函数不能重载
BOracle中的过程和函数只有在包中存在时,才能被重载
COracle中的过程和函数随时随地都可以被重载
D函数可以重载,过程不能被重载
20Oracle中程序包的特点是
A可以写函数和过程
B任何能够定义在声明部分的内容,都可以出现在包中,包就是用来对代码进行封装的
C包是一个可选结构,其中只能定义函数和过程
D定义在包中的过程和函数不能被外部代码所访问
21下面关于保的说法错误的是
A有包头,就必须有包体
B包可分为包头和包体两部分,但包体不是必须的
C如果只用函数和过程,则可以只有包体,没有包头
D包可以继承
22阅读代码,函数被正确重载是
ACREATEORREPLACEPACKAGETESTPACKAGEAS
FUNCTIONPROCEDURE_NAME(PARAM1INNUMBER,PARAM2OUTVARCHAR2)
RETURNBOOLEAN;
FUNCTIONPROCEDURE_NAME(PARAM1INNUMBER,PARAM2INOUTVARCHAR2)
RETURNBOOLEAN;
ENDTESTPACKAGE;
BCREATEORREPLACEPACKAGETESTPACKAGEAS
FUNCTIONPROCEDURE_NAME(PARAM1INNUMBER,PARAM2OUTVARCHAR2);
RETURNBOOLEAN;
FUNCTIONPROCEDURE_NAME(PARAM1INNUMBER,PARAM3OUTVARCHAR2);
RETURNVARCHAR2;
ENDTESTPACKAGE;
CCREATEORREPLACEPACKAGETESTPACKAGEAS
FUNCTIONPROCEDURE_NAME(PARAM1INNUMBER,PARAM2OUTVARCHAR2);
RETURNBOOLEAN
FUNCTIONPROCEDURE_NAME(PARAM1INNUMBER,PARAM2OUTNUMBER);
RETURNOBJECT
ENDTESTPACKAGE;
DCREATEORREPLACEPACKAGETESTPACKAGEAS
FUNCTIONPROCEDURE_NAME(PARAM1INNUMBER,PARAM2OUTVARCHAR2);
RETURNBOOLEAN
FUNCTIONPROCEDURE_NAME(PARAM1INNUMBER,PARAM2OUTCHAR);
RETURNOBJECT
ENDTESTPACKAGE;
23触发器有哪些级别
A行级触发器和字段级触发器
B行级触发器
C语句及触发器
D行级触发器和语句及触发器
26触发器有哪些种类
ABEFORE和AFTER
BBEFORE和BEFOREROW
CAFTER和AFTERSTATEMENT
DFOREACHROW和FOREACHSTATEMENT
27触发器的执行过程是
A行前(多次)、语句前(多次)、行后(多次)、语句后(一次)
B语句前(一次)、行前(多次)、字段有效验证、行后(多次)、语句后(一次)
C语句前(一次)、语句后(一次)、行前(多次)、行后(多次)
D行前(多次)、行后(多次)、语句前(一次)、语句后(一次)
28触发器的动作有哪几个
AINSERT、UPDATE、DELETE
BINSERT、ALTER、DROP
CUPDATE、CREATE
DREMOVE、INSERT、DELETE
29看代码
CREATEORREPLACETRIGGERSTUDENTUPDATEINFO
AFTERINSERTORUPDATEORDELETEONSTUDENT
FOREACHROW
WHEN(NEW.STUIDISNOTNULLOROLD.STUIDISNOTNULL)
BEGIN
CASE
WHENINSERTINGTHEN
DBMS_OUTPUT.PUT_LINE(:
NEW.STUNAME);
DBMS_OUTPUT.PUT_LINE(:
OLD.STUNAME);
DBMS_OUTPUT.NEW_LINE();
DBMS_OUTPUT.PUT_LINE(‘STUDENT表增加一条信息!
!
!
’);
WHENUPDATINGTHEN
DBMS_OUTPUT.PUT_LINE(:
NEW.STUNAME);
DBMS_OUTPUT.PUT_LINE(:
OLD.STUNAME);
DBMS_OUTPUT.NEW_LINE();
DBMS_OUTPUT.PUT_LINE(‘STUDENT表更新一条信息!
!
!
’);
ELSE
DBMS_OUTPUT.PUT_LINE(:
NEW.STUNAME);
DBMS_OUTPUT.PUT_LINE(:
OLD.STUNAME);
DBMS_OUTPUT.NEW_LINE();
DBMS_OUTPUT.PUT_LINE(‘STUDENT表删除一条信息!
!
!
’);
ENDCASE;
END;
当执行了以下命令后
INSERTINTOSTUDENTVALUES(‘STU0010′,’TOM’,TB007′,’JAVA’);
UPDATESETCALSSNAME=’ORACLE’WHERESTUID=’STU0010′;
DELETESTUDENTWHERESTUID=’STU0010′
输出结果为:
AINSERT后输出:
TOMTOMSTUDENT表增加一条信息!
!
!
UPDATE后输出:
TOMTOMSTUDENT表更新一条信息!
!
DELETE后输出:
TOMTOMSTUDENT表删除一条信息!
!
!
BINSERT后输出:
TOMSTUDENT表增加一条信息!
!
!
UPDATE后输出:
TOMTOMSTUDENT表更新一条信息!
!
DELETE后输出:
TOMSTUDENT表删除一条信息!
!
!
CINSERT后输出:
TOMTOMSTUDENT表增加一条信息!
!
!
UPDATE后输出:
TOMSTUDENT表更新一条信息!
!
!
DELETE后输出:
TOMSTUDENT表删除一条信息!
!
!
DINSERT后输出:
TOMSTUDENT表增加一条信息!
!
!
UPDATE后输出:
TOMTOMSTUDENT表更新一条信息!
!
DELETE后输出:
STUDENT表删除一条信息!
!
!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 面试 题库 PLSQLdoc