6,7 execs and answers
更新时间:2024-03-14 15:56:01 阅读量: 综合文库 文档下载
- 6推荐度:
- 相关推荐
第六章习题
一.填空题
1. PL/SQL 程序块主要包含3 个主要部分:声明部分、可执行部分和 部分。 2. 在PL/SQL 中, 如果SELECT 语句没有返回列, 则会引发ORACLE 错误,并且将会引发 异常
3. 自定义异常必须使用 语句引发。
4. 查看操作在数据表中所影响的行数,可通过游标的 属性实现。
5. 完成以下PL/SQL块,功能是:接受职员编号并检索职员姓名。将职员姓名存储在变量empname中,如果代码引发VALUE_ERROR异常,则向用户显示错误消息。 DELCARE
empname employee.ename%TYPE; eno employee.empno%TYPE; BEGIN
eno:=’&employee_number’;
________________________________________________________; DBMS_OUTPUT.PUT_LINE(‘职员姓名:’||empname); ___________
WHEN VALUE_ERROR THEN
DBMS_OUTPUT.PUT_LINE(‘要存储在变量中的值过大’) ; END;
6.下列程序计算由0~9 之间的任意3 个不相同的数字组成的三位数,共有多少种不同的组合方式?完成下列程序使其能够正确运行。 DECLARE
counter number:=0; BEGIN
FOR i IN 1..9 LOOP
FOR j IN 0..9 LOOP
IF THEN
FOR k IN 0..9 LOOP
IF THEN
counter:=counter+1; END IF; END LOOP; END IF; END LOOP; END LOOP;
DBMS_OUTPUT.put_line(counter); END;
二.选择题
1. PL/SQL块中不能直接使用的SQL命令是( )。
A.SELECT B.INSERT C.UPDATE D.DROP 2. 要更新游标结果集中的当前行,应使用( )子句。
A.WHERE CURRENT OF B.FOR UPDATE C.FOR DELETE D.FOR MODIFY 3. 用于处理得到单行查询结果的游标为( )。
A.循环游标 B.隐式游标 C.REF游标 D.显式游标 4. Oracle的内置程序包由( )用户所有。
A.SYS B.SYSTEM C.SCOTT D.PUBLIC
5. 如果创建了一个名为USERPKG 的程序包,并在程序包中包含了名为test 的过程。下列哪一个是对这个过程的合法调用?
A.test(10) B.USERPKG.test(10) C.TEST.USERPKG(10) D.TEST(10).USERPKG 6. 如果在程序包的主体中包括了一个过程,但没有在程序包规范中声明这个过程,那么它将会被认为是() 。
A.非法的 B.公有的 C.受限的 D.私有的 7. 以下定义的哪个变量是非法的?
A.var_ab NUMBER(3); B.var_ab NUMBER(3) NOT NULL:='0'; C.var_ab NUMBER(3) DEFAULT:=1; D.var_ab NUMBER(3):=3; 8. 下列哪一个不是BOOLEAN 变量可能的取值?
A.TRUE B.FALSE C.NULL D.BLANK 9. 只能存储一个值的变量是哪种变量?
A.游标 B.标题变量 C.游标变量 D.记录变量 10. 声明%TYPE 类型的变量时,服务器将会做什么操作? A.为该变量检索数据库列的数据类型 B.复制一个变量
C.检索数据库中的数据 D.为该变量检索列的数据类型和值 11. 下列哪一项可以正确地引用记录变量中的一个值?
A.rec_abc(1); B.rec_abc(1).col; C.rec_abc.col; D.rec_abc.first(); 12. 下列哪个语句允许检查UPDATE 语句所影响的行数? A.SQL%FOUND B.SQL%ROWCOUNT C.SQL%COUNTD D.SQL%NOTFOUND
13. 在定义游标时使用的FOR UPDATE 子句的作用是()
A.执行游标 B.执行SQL 语句的UPDATE语句 C.对要更新表的列进行加锁 D.都不对 14. 对于游标FOR 循环,以下哪一种说法是不正确的?
A.循环隐含使用FETCH 获取数据 B.循环隐含使用OPEN 打开记录集 C.终止循环操作也就关闭了游标 D.游标FOR 循环不需要定义游标 15. 如何终止LOOP 循环,而不会出现死循环?
A.在LOOP 语句中的条件为FALSE 时停止 B.这种循环限定的循环次数,它会自动终止循环
C.EXIT WHEN 语句中的条件为TRUE D.EXIT WHEN 语句中的条件为FALSE 16. 如果PL/SQL程序块的可执行部分引发了一个错误,则程序的执行顺序将发生什么变化?
A.程序将转到EXCEPTION部分运行 B.程序将中止运行 C.程序仍然正常运行 D.以上都不对 17. 对于游标FOR循环,以下哪种说法是错误的?
A.循环隐含使用FETCH提取数据 B.循环隐含使用OPEN打开记录集 C.终止循环操作也就关闭了游标 D.使用游标FOR循环不需要定义游标
三.简答题
1. 用FOR循环和其他循环出来游标有什么区别? 2. 描述游标的各个属性。 3. 如何处理用户自定义异常
4. 假设存在表emp (eno char(6) primary key, ename varchar2(20), sal number(6,2), job varchar2(40))编写一个程序块,从emp表中显示名为’SMITH’的雇员的薪水和职位。
第七章习题
一.填空题
1. 完成以下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; 2. 完成以下PL/SQL块,功能是:使用游标显示销售报表。如果目标销售额(tsales)大于实际销售额(asales),则显示消息“需提高销售额”。如果tsales等于asales,则显示消息“已达到销售额”,否则显示消息“销售业绩出色”
DECLARE
CURSOR sales_cur IS SELECT * FROM salesdetails; BEGIN
___________________________________ IF sales_rec.tsales > sales_rec.asales THEN
DBMS_OUTPUT.PUT_LINE('产品:'||sales_rec.pid||' 需提高销售额'); ELSE
IF ______________________ THEN
DBMS_OUTPUT.PUT_LINE('产品:'||sales_rec.pid||'已达到销售额'); ELSE DBMS_OUTPUT.PUT_LINE('产品:' ||sales_rec.pid||'销售业绩出色'); END IF; END IF; END LOOP; END;
二.选择题
1. ( )触发器允许触发操作中的语句访问行的列值。
A.行级 B.语句级 C.模式 D.数据库级 2. 锁用于提供( )。
A.改进的性能 B.数据的完整性和一致性 C.可用性和易于维护 D.用户安全 3. ( )锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入、更新和删除行。
A.行共享 B.行排他 C.共享 D.排他
4. 带有( )子句的SELECT语句可以在表的一行或多行上放置排他锁。 A.FOR INSERT B.FOR UPDATE C.FOR DELETE D.FOR REFRESH
5. 下列哪个语句可以在SQL*Plus 中直接调用一个过程?
A.RETURN B.CALL C.SET D.EXEC 6. 下面哪些不是过程中参数的有效模式?
A.IN B.IN OUT C.OUT IN D.OUT
7. 如果存在一个名为TEST 的过程,它包含3 个参数:第一个参数为P_NUM1,第二个参数为P_NUM2,第三个参数为P_NUM3。3 个参数的模式都是IN。P_NUM1 参数的数据类型是NUMBER , P_NUM2 参数的数据类型是VARCHAR2 , 第三个参数的数据类型是 VARCHAR2。下列哪一个是该过程的有效调用? A.TEST(1010,P_NUM3=>'abc',P_NUM2=>'bcd') B.TEST(P_NUM1=>1010,P_NUM2=>''abc','bcd') C.TEST(P_NUM1=>1010,'abc','bcd') D.上述都对
8. 函数头部中的RETURN 语句的作用是什么?
A.声明返回的数据类型 B.声明返回值的大小和数据类型 C.调用函数 D.函数头部不能使用RETURN 语句 9. 根据下面的匿名程序块,判断CHECK_VALUE 程序单元是否为一个函数? DECLARE
V_TEST NUMBER; BEGIN
IF V_TEST > 10 THEN
CHECK_VALUE(V_TEST); END IF;
END;
A.可以为一个函数 B.可以,但函数必须不包含任何SQL 语句 C.可以,但需要初始化变量V_TEST D.不可以 10. 对于下面的函数,哪个语句将成功地调用?
CREATE OR REPLACE FUNCTION Calc_Sum(Addend_X number,Addend_Y number) Return number As Sum number;
BEGIN Sum :=Addend_X+Addend_Y; Return Sum; END;
A.Calc_Sum B.EXECUTE Calc_Sum(45) C.EXECUTE Calc_Sum(23,12) D.Sum:=Calc_Sum(23,12) 11. 当满足下列哪种条件时,允许两个过程具有相同的名称?
A.参数的名称或数量不相同时 B.参数的数量或数据类型不相同时 C.参数的数据类型和名称不相同时 D.参数的数量和数据类型不相同时 12. 下列哪一个动作不会激发触发器?()
A.更新数据 B。查询数据 C.删除数据 D.插入数据 13. 在创建触发器时,哪一个语句是决定触发器是针对每一行执行一次,还是针对每一个语句执行一次?()
A. FRO EACHROW B. ON C. REFERENCING D. NEW 14. 替代触发器一般被附加到下列哪一类数据库对象上?() A.表 B. 序列 C. 视图 D. 簇
15. 如果希望执行某个操作时,该操作本身并不执行,而是去执行另外的一些操作,那么可以使用什么方式完成这种操作?
A.BEFOR触发器 B.AFTER触发器 C.INSTEAD OF触发器 D.UNDO触发器
三. 简答题
1. 存储过程与函数有什么区别?
2. 简述调用过程时传递参数值的三种方式。 3. 简述替代触发器的作用。
4. 假设有两张表EMP,DEPT,其中,DEPT表中的主键DEPTNO在EMP表中充当外键,创建一个触发器,当修改DEPT表中的DEPTNO时,是EMP表中的对应值也做相应修改。 5.账户表ACCOUNT结构如下ACCOUNT( ACCOUNTNUM INT PRIMARY KEY, ACCOUNTNAME VARCHAR2(20) , TOTAL FLOAT),利用存储过程来实现下面的应用:从一个账户转指定数额的款到另一个账户。
第六章答案
一. 填空题
1. 异常处理
2. NO_DATA_FOUND 3. raise
4. %ROWCOUN
5. SELECT ename INTO empname FROM employee WHERE empno=eno; EXCEPTION 6. i!=j 或者 i<>j
k!=i and k!=j 或k<>i and k<>j
二. 选择题 1.D 6.D 11.B 16.A 2.A 7.B 12.B 17.D 3.B 8.D 13.B 4.A 9.B 14.D 5.B 10.A 15.C
三.简答题
1. 答: 用For循环编写游标程序:系统自动打开游标,不用显式地使用OPEN语句打开;系统隐含地定义了一个数据类型为%ROWTYPE的变量,并以此作为循环的计算器。系统重复地自动从游标工作区中提取数据并放入计数器变量中。当游标工作区中所有的记录都被提取完毕或循环中断时,系统自动地关闭游标。
2. 答: %FOUND布尔型属性,如果sql语句至少影响到一行数据则该属性为true,否则为false;%NOTFOUND布尔型属性与%FOUND相反;%ISOPEN布尔型属性,当游标已经打开时返回true,游标关闭时则为false;%ROWCOUNT数字型属性,返回受sql语句影响的行数。
3. 答:用户自定义异常是通过显示使用RAISE语句来引发的,当引发一个异常时,控制就转到EXCEPTION异常处理部分执行异常处理语句。步骤如下:定义异常处理,触发异常处理,处理异常。 4.
set serveroutput on; declare
c_sal number(6,2); c_job varchar2(40); begin
select sal,job into c_sal,c_job from emp where emp.ename = 'SMITH';
dbms_output.put_line('SMITH的工资为:'||c_sal||',职位为:'||c_job);
exception
when others then dbms_output.put_line('ERROR!'); end;
第七章答案
一.填空题
1. OPEN toy_cur
FETCH toy_cur INTO my_toy_price; 2. FOR sales_rec IN sales_cur LOOP sales_rec.tsales = sales_rec.asales
二.选择题 1.A 6.C 11.B
2.B 7.A 12.B 3.C 8.A 13.A 4.B 9.D 14.C 5.D 10.D 15.C 三. 简答题
1. 答:过程被存储在数据库中并且存储过程没有返回值存储过程不能由SQL语句直接使用只能通过EXECUT命令或PL/SQL程序块内部调用。函数必须有返回值并且可以作为一个表达式的一部分函数不能作为一个完整的语句使用函数返回值的数据类型在创建函数时定义。
2.答: IN参数由调用者传入并且只能够被存储过程读取它可以接收一个值但是不能在过程中修改这个值 OUT参数由存储过程传入值然后由用户接收参数值它在调用过程时为空在过程的执行中将为这参数指定一个值并在执行结束后返回 IN OUT参数同时具有IN和OUT参数的特性。
3. 答:Instead of 触发器也称替代触发器,定义instead of 触发器后,用户对表的DML操作将不再被执行,而是执行触发器主体中的操作。Instead of 触发器是定义在视图上的,而不是在表上,它是用来替换所使用实际语句的触发器。因为一个视图通常由多个基本表连接而成,这种视图不允许进行instead、update和delete 这样的DML操作。当为视图编写instead of 触发器后,用户对视图的DML操作就不会被执行,而是执行触发器中的PL/SQL语句,这样就可以通过在instead of 触发器中编写适当的代码对构成视图的各个表进行操作。
4.
CREATE OR REPLACE TRIGGER MODIFY_DEPTNO_TRIGGER
BEFORE UPDATE ON DEPT
FOR EACH ROW BEGIN
UPDATE EMP
SET DEPTNO=:NEW.DEPTNO WHERE DEPTNO=:OLD.DEPTNO; END; 5.
CREATE PROCEDURE TRANSFER(inAccount INT , outAccount Int , amount FLOAT) AS DECLARE
totalDeposit Float; BEGIN
SELECT total INTO totalDeposit FROM ACCOUNT
WHERE ACCOUNTNUM = outAccount; IF totalDeposit IS NULL THEN ROLLBACK; RETURN; END IF;
IF totalDeposit< amount THEN ROLLBACK; RETURN; END IF;
UPDATE amount SET total=total-amount WHERE ACCOUNTNUM=outAccount; UPDATE amount SET total=total+amount WHERE ACCOUNTNUM=inAccount; commit; END;
正在阅读:
西方马克思主义之法兰克福学派批判理论04-25
幼儿园大班科学《气象预报》教师资格证面试试讲教案模板教师招聘03-09
如何用word制作表格06-05
工作居住证相关材料12-20
食品功能性成分的测定01-23
微机部分课后习题11-09
邯郸钢铁企业01-04
我的捣蛋鬼妹妹作文350字06-18
- 企业所得税法考试秘笈
- 三级综合医院等级评审标准几点体会(山大二院)
- 全国哲哈忍耶上坟拱北简介
- 大家的日语课后阅读翻译
- 备课13 数据的收集与整理
- 埃塞俄比亚新五年规划
- 2018年安徽省安徽省合肥巢湖市事业单位招聘考试《综合知识》真题
- 高中--《美术鉴赏》课程纲要
- 唯一的听众教学设计
- 二、三年级写话训练
- 最新-2018届广东省佛山市普通高中高三教学质量检测(二)理科综合
- 电网监控与调度自动化作业题及答案
- 岗位廉政风险点查找和防控措施表
- 最经典的100条汽车广告
- 玻璃钢水箱课程设计(二)
- 电网监控与调度自动化 第五章
- 普通高中学生学籍管理办法
- 新人教版五年级下册数学第一单元教案观察物体
- 河北某住宅小区电气施工方案 - secret
- 战术基础动作教案
- answers
- execs
- 手术切口的分类与清洁切口抗菌药物使用原则
- 2018-2019-办公室201X上半年工作总结-精选word文档(2页)
- 在学生会成立大会上的讲话
- 塑料盖模具设计论文
- 氢氧化钙 - MSDS
- 酸碱站培训资料
- 船舶电气总思考题(船舶电气,武汉理工,轮机工程)
- 20XX年全国两会关于公务员涨工资,两会关于公务员涨工资热点解读
- 第三章 现代综述
- 昆明地铁3号线工程机电安装与设备区装修工程标段招标文件技术规
- 华中科技大学工程力学实验题
- VF基本操作参考答案
- 数学建模竞赛论文格式模板
- 25 膨胀力试验
- 四川省达州市大竹县文星中学2013-2014学年高一(下)月考化学试
- 高压铸造快速抽真空方法研究 - 图文
- QC创新事迹材料
- 浅析“互联网+”的由来与发展
- 人教版政治必修三(15)8.1《色彩斑斓的文化生活》课时提升卷(含
- 发电运行值班人员高级工理论知识合并卷2015