1.请说明实例与数据库的关系;表空间和数据文件的关系
2.请阐述同议词的作用.你认为情况下要使用同义词.
3.varchar2,char两种数据类型有什么区别,如果库表某字段输入"ABC"后储存,该 字段数据类型分别为varchar2(10,char(10)存储字节长度以及内容有何区别?
4. talbe :
pub(pub_code char(2),pub_name varchar2(32))
book(book_code char(8),book_name varhcar2(128),pub_code char92),author_code char(4),book_mem varchar2(128))
author(author_code char(4),author_name varchar2(10),sex char(1), age number(3),dir varchar2(64))
auth_list(auth_date date,author_code char(4))
在PL/SQL中有以下两种字义
v_book_row book%rowtype;
v_book_code book.bank_code%type;
请说明v_book_row,v_book_code变量的含义以及数据类型
5.Tnsnames.ora,LISTENER.ORA两个文件作用?
6.请看以下存储过程
begin
    begin
   <语句1>
         exception
             when others 
            dbms_output.put_line('错误1');
            end;
             begin
            <语句2>
            dbms_output.putline('错误2');
            end;
         exception
            when others then
            dbms_output.put_line("错误3");
end;
请问,当<语句1>,<语句2>出错时,该存储过程输出字符串分别是什么?
7.找出"作者"库表中没有出现在"获奖名单"库表中的所有作者信息的SQL语句,(提示:使用NOT IN,NOT EXISTS,以及外部连接(+)三种方法),并说明那种方法是不优化的
出版社: 出版社代码 char(2),出版社名称 varchar2(32)
图书: 图书编号 char(8),图书名称 varchar2(128),出版社代码 char(2),作者代号 char(4),图书简介 varchar2(128)
作者: 作者代号 char(4),作者名称 varchar2(10),性别 char(1),年龄 number(3),文学方向 varchar2(64)
获奖名单: 获奖日期 date,获奖人员 char(4)
8.请阐述归档日志模式与非归档日志模式的区别以及对数据库备份恢复能力的影响.
9.ORACLE数据库表METER中存在伪列Rowid,请利用ROWID来编写以下语句:从以下记录中找到唯一的任一条记录并更新该记录FLAG为"Y".
MONTH    USER_NO    ASSST_NO     FLAG
2004-7-1 1000009    10A0001    N
2004-7-1 1000009    10A0001    N
2004-7-1 1000009    10A0001    N
10.改写函数为存储过程
create or replace function two_number(v_one number,v_two number)
return number is
begin
return v_one*v_two
end;
请将该函数改写为存储过程,注意传值参数如何设置
 

解决方案 »

  1.   

    第2个问题:
    oracle的同义词总结:  从字面上理解就是别名的意思,和试图的功能类似。就是一种映射关系。  1.创建同义词语句:  createpublicsynonymtable_nameforuser.table_name;  其中第一个user_table和第二个user_table可以不一样。  此外如果要创建一个远程的数据库上的某张表的同义词,需要先创建一个Database Link(数据库连接)来扩展访问,然后在使用如下语句创建数据库同义词:create synonym table_name for table_name@DB_Link;  当然,你可能需要在user用户中给当前用户(user2)授权: grant select/delete/update on user2  2.删除同义词:  droppublicsynonymtable_name;  3.查看所有同义词:  select*fromdba_synonyms  同义词拥有如下好处:节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;扩展的数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;同义词可以创建在不同一个数据库服务器上,通过网络实现连接。
      

  2.   

    1、数据库是一组磁盘或文件的集合。实例物理内存中的数据结构和一组后台进程组成。一个数据库可以被多个实例所装载,但一个实例只能装载一个数据库。 表空间是一个逻辑概念,表空间包含段,段包含盘区,区包含数据块。一个段可以来自不同的数据文件,区不能跨越数据文件,一个表空间可以包括多个数据文件,但一个数据文件只能属于一个表空间。
    2、同义词是数据库方案对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。优点:首先,应用程序开发可以不管数据库的具体对象名;其次,避免应用程序直接访问数据库对象,提高数据库安全性;最后,简化数据库对象的访问。
    3、VARCHAR2是这按字符串的实际长度存储,但CHAR是按定义的长度存储,如果字串长度不够,则在其后使用空格填充。所以同样存储"ABC",VARCHAR2的存储为'ABC',长度为3,CHAR存储'ABC          ',字串后有7个空格符,长度为10。
    4、v_book_row book%rowtype表示声明了一个变量v_book_row,它是一个能存储BOOK表记录的行记录类型,v_book_code book.bank_code%type表示声明了一个变量v_book_code,与BOOK表的bank_code字段的类型一致,为char(8)类型。
    5、tnsnames.ora用于客户端,配置连接服务端的参数文件,主要参数有服务器、服务名、端口等,其中每个配置有一个名称,然后通过该名称连接指定的数据库;Listener.ora是数据库监听配置文件,在数据服务端,配置数据库的监听参数主要包括服务器所在计算机、服务名、监听端口号等。配置好后需要启动服务来监听客户端的连接请求。
    6、语句一出错输出“错误1”,语句二出错输出“错误3”。
    7、一般来说not exists高效,not in最差
    select * from 作者 a where not exists (select 1 from 获奖名单 b where a.作者代号 = b.获奖人员);
    select * from 作者 a where a.作者代号 not in (select 获奖人员 from 获奖名单 b);
    SELECT *
      FROM (SELECT * FROM 作者 a LEFT JOIN 获奖名单 b ON (a.作者代号 = b.获奖人员))
     WHERE 获奖人员 IS NULL;
     
    8、归档模式是指你可以备份所有的数据库 transactions并恢复到任意一个时间点。非归档模式则相反,不能恢复到任意一个时间点。但是非归档模式可以带来数据库性能上的少许提高.
    9、
    UPDATE METER a SET a.flag = 'Y' WHERE ROWID = (SELECT MAX(ROWID) FROM METER);

    UPDATE METER a SET a.flag = 'Y' WHERE ROWID = (SELECT MIN(ROWID) FROM METER);
    10、
    create or replace procedure two_number(v_one number,v_two number, v_result number) is
    begin
     v_result := v_one*v_two;
    end;
      

  3.   

    第6个问题的答案:
             当<语句1>出错时,输出字符串错误1,错误2
    当<语句2>出错时,输出错误3俺上机试过了应该没有问题。。虽然跟我上机前猜想的答案不一样不过确实如此
      

  4.   

    6题应该如楼上的,疏忽!!
    10题修改一下
    v_result out number
      

  5.   

    一个Oracle Server由一个Oracle实例和一个Oracle数据库组成。           即:Oracle Server = Oracle Instance + Oracle Database       Oracle实例           包括了内存结构(SGA)和一系列后台进程(Background Process),两者合起来称为一个Oracle实例           即:Oracle Instance = SGA + Background Process、
    Oracle 数据库       一系列物理文件的集合            包括控制文件、数据文件、联机日志文件、参数文件、密码文件等               即:Oracle Database = Controlfile + datafile + logfiel + spfile +..
      

  6.   

    1. 在ORACLE中,实例是指内存和后台进程这些,数据库是指数据文件、控制文件这些,N(>=1)个实例对应一个数据库   一个表空间对应多个数据文件2. 同义词相当于一个别名。
       例如用户A想访问用户B的表,可以这么写:select * from b.t_table, 假如为b.t_table创建一个同义词 t_table, 用户A就可以这样访问了:select * from t_table. 权限控制时常用。3.char如果长度不足定义的长度,则会补足空格。
      ABC存入varchar2(10), 存入的是:ABC
      ABC存入char,需在后补7个空格,存入:ABC       (后面7个空格)4.
    v_book_row book%rowtype; 
    %rowtype是行类型,v_book_row可以存入book表的一行记录
    v_book_code book.bank_code%type;
    v_book_code是book表bank_code字段的类型的引用。
    使用%rowtype,%type, 则在表的字段更改类型后,无需更改代码,如果可能,应尽量使用5. tnsnames.ora, 用于客户端配置服务名以连接服务器
       listener.ora, 是服务器监听配置的一个文件6. 错误1
       错误37. 这题太长了,懒的看了。
       NOT IN, NOT EXISTS, 外连接+(is null)
       这3种方式,一般来讲以第3种为优。
       但是,没有绝对的事,主要还是看SQL的执行计划。8. 非归档只能做冷备份(不考虑逻辑备份);
       归档则可以做好多种备份,且归档RMAN才支持。
       归档时,可做基于时间点、SCN等等的恢复;
       不归档,只能做一个全库还原9. update meter
          set flag = 'Y'
        where rowid in (
                       select rowid 
                         from meter
                        where rownum = 1
                       )
      
    10.
    create or replace procedure two_number(
    v_one  number,
    v_two  number,
    p_ret out number
    )
    begin
       p_ret := v_one * v_two;
    end;