oracle数据库考试简答题,请回答一下吧,三个都回答了才会给分哦

oracle数据库考试简答题,请回答一下吧,三个都回答了才会给分哦,第1张

REF CURSOR游标:

动态游标,在运行的时候才能确定游标使用的查询。分类:

强类型(限制)REF CURSOR,规定返回类型

弱类型(非限制)REF CURSOR,不规定返回类型,可以获取任何结果集。

TYPE ref_cursor_name IS REF CURSOR [RETURN return_type]

Oracle 的隔离级别

SQL92定义的隔离级别在理论上很完善,但是 Oracle 显然认为在实际实现的时候并不应该完全照搬SQL92的模型。

- Oracle不支持 SQL92 标准中的“读取未提交数据(read uncommitted)”隔离级别,想要脏读都没可能。

- Oracle 支持 SQL92 标准中的“读取已提交数据(read committed)”隔离级别,(这也是Oracle默认的隔离级别)。

- Oracle不支持 SQL92 标准中的“可重现的读取(repeatable read)”隔离级别,要想避免“不可重现的读取(nonrepeatable read)”可以直接使用“序列化(serializable)”隔离级别。

- Oracle 支持 SQL92 标准中的“序列化(serializable)”隔离级别,但是并不真正阻塞事务的执行(这一点在后文还有详述)。

- Oracle 还另外增加了一个非SQL92标准的“只读(read-only)”隔离级别。

oracle startup的时候分为三个步骤:

1 Start an instance

2 Mount the database

3 Open the database

三个步骤中所要做的工作主要如下:

1、start an instance

命令为 startup nomount

在这一步中主要工作有:

Reading the parameter file initsidora

Allocating the SGA

Starting the background processes

Opening the ALERT file and the trace files

读参数文件是为了读里面的dbname,各个内存参数的大小,比如sga的大小,以便分配内存,还有控制文件的路径等。在这一步并不打开控制文件,所以如果你要重建控制文件的时候,需要工作在这个状态下。

2、Mount the database

命令为 startup mount,如果在nomount状态下命令为: alter database mount

在这一步中主要工作有:

Associating a database with a previously started instance

Locating and opening the control files specified in the parameter file

Reading the control files to obtain the names and status of the data files and redo log files

在这一步,主要用到的文件是控制文件然后读控制文件,得到各个数据文件和联机日志文件的名字和状态(online or offline) ,但是并不去检查各个文件是否存在所以如果你要修改数据文件的名字和重建联机日志文件等 *** 作,就需要工作在mount状态下因为下一步要打开各个数据文件和联机日志文件,所以如果数据文件不存在,你就需要在mount状态下,恢复文件,才能使下一步不报错误

3、Open the database

命令为 startup,如果在mount状态下命令为: alter database open

在这一步中主要工作有:

Opening the online data files

Opening the online redo log files

在这一步中,数据库主要的工作是打开第2步中在控制文件中读到的在线的联机日志文件和数据文件如果数据文件和联机日志文件不存在,oracle就会报错oracle打开数据文件和日志文件之后,会对数据文件和日志文件进行一致性检查,如果发现不一致,会启动SMON进程进行实例恢复

另外,在整个过程中密码文件都是必须的,因为要验证 *** 作的用户是否具有适当的权限。这个只是从宏观上来看oracle启动的整个过程。

create or replace function(p_coursename in varchar2)

return varchar2

is

v_course_name varchar2(20);

v_currentstudents number(3);

v_maxstudents number(3);

v_result varchar2(30);

begin

v_course_name := p_coursename;

select tcurrent_students,tmax_students into v_currentstudents,v_maxstudents from classes t where tcourse_name=v_course_name;

select case when v_currentstudents/v_maxstudents = 1 then  '已满'

      when v_currentstudents/v_maxstudents <1 then  '还有一些位置'

      when v_currentstudents/v_maxstudents < 08 then '还有较多位置'

      when v_currentstudents/v_maxstudents < 06 then '有非常多的位置'

      when v_currentstudents/v_maxstudents =0 then '当前尚无选修' end 

      into v_result from dual;

      return v_result;

 exception

     when others then

      return null;      

end;

以上就是关于oracle数据库考试简答题,请回答一下吧,三个都回答了才会给分哦全部的内容,包括:oracle数据库考试简答题,请回答一下吧,三个都回答了才会给分哦、oracle数据库题目、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9695336.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存