Oracle函数面试题(四)

2014-11-24 15:53:29 · 作者: · 浏览: 10
salary值在0-1000之间的员工的工资上涨20%,(提示:要求用到游标)
Cteate or replace procedure emp_sal
V_name employee.name%type;
V_emp_no employee.emp_no%type;
V_salary employee.salary%type;
Cursor cursor_sal is
Select name,emp_no,salary from employee where salary between 0 and 1000;
Begin
Open cursor_sal;
Loop
Fetch cursor_sal into v_name,v_emp_no,v_salary;
Exit when cursor_sal%notfound;
Update employee set salary=salary*1.2 where name=v_name and emp_no=v_emp_no;
End loop;
Close cursor_sal;
Commit;
End;
54、ORACLE数据库都有哪些类型的文件
数据文件,控制文件,日志文件,参数文件
55、用命令创建表空间、用户,并为用户授权、收回权限。
Create tablespace tabllespacename
Datafile ‘f:\orcl\user001.dbf size 20m
Default storage(
Initial 512k
Next 512k
minextents 2
pctincrease 50%
maxExitnts 2048)
minimum extent 512k
logging
online
permanent
extent management dictionary;
回收权限: revoke privilege from user;
create tablespace tablespace_name
datafile ‘’
default storage(
initial xxxkb
next yykb
minextents 2
pctincrease nnnn
maxextents mmm)
logging
online
extent management dictionary/local[autoallocate/uniform size xxxmb];
create user user_name
identified by passwore/
identified externally/
identified globally as ‘CN=user’
default tablespace tablespace_name
temporary tablespace tablespace_name
[account lock /unlock]
grant connect to user_name;
grant create table to suer_name;
grant update on table_name to user_name;
revoke create table from user_name;
revoke update on table_name from user_name;
56、在Oracle中如何更改用户名
57、如何在Oracle中查询某个用户下所有已建的表
答:select * from cat;
57、执行TRUNCATE命令后,存储空间是否还存在,是否可被其他的表占用
执行TRUNCATE之后,为表分配的区空间将被回收HWM将回退,如果在使用TRUNCATE的时候没有指定REUSE STORAGE那么执行操作后仅仅留下由MINEXTENTS所指定的区否则表的所有空间将被回收用于再分配。
59、何在Oracle中查看当前用户,通常有哪些方式 (提示:show user和select * from user_users)show user;/select username from user_users;
60、出在Oracle中,创建表空间的语法结构,以及所含参数说明。
Create tablespace tablespacename
Datafile ‘’
Logging/nologging
Default storage(initial kb
Next kb
Minextents x
Maxextents y
Pctincrease z
)
online/not online
extent management dictionary/local[autoallocate/uniform size kb];
61、如何判断游标是否到了末尾 (提示:用%notfound)
cursor_name%notfound
62、在Oracle中,如何查看当前用户下的所有表空间
Select tablespace_name from user_tablespaces;
63、在Oracle中,你所创建的表空间信息放在哪里
存放在数据字典中,数据字典内容对应于系统表空间SYSTEM表空间。
64、ORACLE中的控制文件什么时候读取
ORACLE服务器启动时,先启动实例然后再读取数据库的各个文件当然也包括控制文件。也就是说在数据库服务器启动的第二步时读取。
65、Oracle的表格信息存储在哪个地方
SYSTEM表空间的数据字典文件中。
66、如何根据字典创建一个表空间,并说明参数
66、ORACLE中当一个用户正在操作一个执行过程,管理员此时取消了他的权限,会发生什么事情
68、谈谈你对角色的理解,常用的角色有哪些
角色就是一组权限的数据库实体,它不属于任何模式或用户但是可以被授予任何用户。常用的角色有CONNECT,DBA,RESOURCE,SELECT_CATALOG_ROLE(查询所有表视图权),DELETE_CATALOG_ROLE(删除权限)等。
角色的创建和授权:和创建用户为用户授权差不多。Create role role_name identified …
grant 权限to role_name。
69、简述Oracle的归档与不归档工作模式,分别说明。
Oracle归档模式是指在创建数据库时指定了ARCHIVELOG参数,这种模式下,当重做日志文件写满的时候会将该重做日志文件的内容保存到指定的位置(由初始化文件中的参数ARCHIVE_LOG_DEST_n来决定)。并不是数据库在归档模式下工作的时候就可以自动完成归档操作,在归档模式下可以有两种归档方式:自动归档(在初始化文件中的参数ARCHIVE_LOG_START被设置为TRUE)和手动归档。如果归档模式下没有启动自动归档的话,而且又没有实行手动归档那么当LGWR进程将重做日志信息写入已经写满的重做日志文件时数据库将会被挂起直到进行了归档。可见归档是对重做日志文件信息的一种保护措施。