oracle10g数据库管理应用与开发课后答案

发布时间 : 星期日 文章oracle10g数据库管理应用与开发课后答案更新完毕开始阅读

DECLARE

counter number:=0; BEGIN

FOR i IN 1..9 LOOP FOR j IN 0..9 LOOP IF i!=j THEN

FOR k IN 0..9 LOOP IF k!=i and k!=j counter:=counter+1; END IF; END LOOP; END IF; END LOOP; END LOOP;

DBMS_OUTPUT.put_line(counter); END; 第八章

1.在下面程序的空白处填写一定的代码,使该函数可以获取指定编号的商品价格。 CREATE OR REPLACE FUNCTION get_price (P_ID varchar2) return number is IS

v_price NUMBER; BEGIN

SELECT 单价 into v_price FROM 商品信息 WHERE 商品编号=P_ID; RETURN v_price;

EXCEPTION

WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('查找的商品不存在!'); WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.PUT_LINE(' 程序运行错误!请使用游标'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('发生其他错误!'); END get_price;

2.假设有一个程序包,其中包含了两个重载的函数max。写出下面程序调用max函数后的运行结果。 程序包主体:

Create or replace package body TEST is

Function max(x in number,y in number) return number is Result number; Begin If x>y then Result:=x; Else Result:=y; End if; Return (result)' End max;

Function max(x in number,y in number,z in number) return number is result number; Begin

Result:=test.max(x,y); Result:=test.max(result,z); Return(result); End max; End;

运行结果: 21

3.在下面程序的空白处填写适当的代码,使得调用该过程时可以统计某产地的商品数量和总价。

CREATE OR REPLACE PROCEDURE proc_demo(

Merch_place IN varchar2, Price_sum out NUMBER, Merch_count out NUMBER) IS BEGIN

SELECT SUM(单价),COUNT(*) INTO Price_sum,Merch_count FROM 商品信息 WHERE 产地=Merch_place; EXCEPTION

WHEN NO_DATA_FOUND THEN

DBMS_OUTPUT.PUT_LINE('所需数据不存在!'); WHEN OTHERS THEN

DBMS_OUTPUT.PUT_LINE('发生其他错误!'); END proc_demo; 第九章

1.为了建立外部表,首先需要指示数据文件在操作系统上的位置。现在假设在操作系统的F:\\DATAFILE文件夹中存有一个数据文件,使用create directory exterior_data as 'F:\\DATAFILE';语句使Oracle可以访问数据文件。 2.在使用CREATE TABLE 语句创建索引组织表时,必须使用organization index子句指示创建的表为索引组织表,并且为索引组织表指定主键。

3.PCTTHRESHOLD指定一个数据块的百分比,当一行中的数据占用空间大于这个百分比时,该行将被分隔到两个位置存储:主键列被存储在基本索引段中,所有其他列被存储在溢出段中。

4.Oracle中的临时表可以分为事务级临时表和会话级临时表,创建事务级别的临时表,需要使用on commit delete rows子句;创建一个会话级别的临时表,则需要使用on commit preserver rows子句。

5.在创建对象类型时,用户不必特意创建构造函数,它由系统隐式创建,名称与对象类型的名称相同,并且它会接收对象类型的所有属性作为它的参数。

6.如果用户想要对对象类型的实例进行比较排序,则需要使用映射方法Map,它最重要的一个特点是:当在WHERE或ORDER BY 等比较关系子句中使用对象时会被间接地使用。

7.有两种方法向对象表添加数据:一种是像关系表一样在INSERT的VALUES子句中,为对象的每个属性提供值,

隐式地创建对象类型实例,向对象表添加数据;另一种方式是显式地创建对象实例,然后再将它添加到对象表。 8.Oracle数据库提供对表或索引的分区方法有5种:范围分区、散列分区、列表分区、组合范围散列分区和组合范围列表分区。

9.簇是一种用于存储数据表中数据的方法。簇实际是一组表,由一组共享相同数据块的多个表组成。 第十章

1.B树索引可以是唯一的或者不唯一的,唯一的B树索引可以保证索引列上不会有重复的值。 2.在为表中某个列定义PRIMART KEY约束PK_ID后,则系统默认创建的索引名为PK_ID。 3.在B树索引中,通过在索引中保存排过序的索引列的值与相对应的RowID来实现快速查找。 4.如果表中某列的基数比较低,则应该在该列上创建位图索引。

5.如果要获知索引的使用情况,可以通过查询V$OBJECT_USAGE视图;而要获知索引的当前状态,可以查询Index_Stats视图。

第十一章

1.在不为视图指定列名的情况下,视图列的名称将使用表列的名称。

2.视图与数据库中的表非常相似,用户也可以在视图进行INSERT、UPDATE、和DELETE操作。通过视图修改数据时,实际上是在修改基本表中的数据;相应地,改变基本表中的数据也会反映到该表产生的视图中。 3.视图是否可以更新,这取决于定义视图的SELECT语句,通常情况下,该语句越复杂,创建的视图可以更新的可能性也就越小。

4.下面的语句创建了一个序列对象,该序列对象的开始数为2,每次递增2,当大于1000后,序列值重新返回到2.在空白处填写适当的代码,完成上述要求。 Create sequence seg_test Start with 2 Increment by 2 Maxvalue 1000 Cycle; 第十二章

1.假设有一个表TEST,它仅包含一个字段DATA。现在创建一个触发器,实现将添加的数据变大写。在下面的空白处填写适当的语句,使之可以正常运行。

联系合同范文客服:xxxxx#qq.com(#替换为@)