oracle数据库题库
1. 请帮忙解决一道Oracle数据库试题:
用管道函数:
create or replace type rec_list is table of number;
CREATE OR REPLACE FUNCTION pipe_rec (pmax NUMBER)
RETURN rec_list PIPELINED
IS
BEGIN
FOR i IN 1 .. pmax
LOOP
PIPE ROW (i);
END LOOP;
RETURN;
END;
/
insert into a
select a.*,1 from table(pipe_rec(10000000)) b
2. oracle数据库题目,在线等答案,求速度!
你这个很简单得,给你提示一下,在主帖表上进行插入对应数据,然后判断是否成功,如果成功,则修改对应用户得积分数和对应主贴数量,注意,这些都要结合数据库事务那些,如果插入失败,则回滚对应数据库事务,你的数据库表字段太多,我给你整,也很慢,
3. 关于oracle试题,数据库是oracle11g用于scott用户测试的数据库,题目如下。
1:
SELECT d.deptno,d.dname,COUNT(e.empno),AVG(sal),MIN(sal),MAX(sal)
FROM emp e,dept d
WHERE e.deptno=d.deptno(+)
GROUP BY d.deptno,d.dname
HAVING COUNT(e.empno)>1;
3:
SELECT e.empno,e.ename,d.dname,m.ename
FROM emp e,dept d,emp m
WHERE e.sal>ALL(
SELECT sal
FROM emp
WHERE ename IN('SMITH','ALLEN'))
AND e.deptno=d.deptno
AND e.mgr=m.empno(+);
4:
SELECT e.empno,e.ename,m.empno,m.ename,(m.sal+NVL(m.comm,0))*12 income
FROM emp e,emp m www.2cto.com
WHERE e.mgr=m.empno(+)
ORDER BY income DESC;
5:
SELECT e.empno,e.ename,d.dname,d.loc,temp.count
FROM emp e,emp m,dept d,(
SELECT deptno dno,COUNT(empno) count
FROM emp
GROUP BY deptno) temp
WHERE e.mgr=m.empno(+) AND e.hiredate<m.hiredate
AND e.deptno=d.deptno
AND e.deptno=temp.dno;
6:
SELECT * FROM
(select b.*,ROWNUM rn from (select a.* from emp a) b)
WHERE rn BETWEEN 5 AND 10;
4. oracle数据库题,求答案
答案如下,正确为T,错误为F
1、 oracle数据库系统中, 启动数据库的第一步是启动一个数据库实例。 ( T ) 2、Oracle服务器端的监听程序是驻留在服务器上的单独进程,专门负责响应客 户机的连接请求。( F) 3、 oracle数据库中实例和数据库是一一对应的 (非ORACLE并行服务, 非集群) 。 ( T) 4、系统全局区SGA 是针对某一服务器进程而保留的内存区域,它是不可以共享 的。( F ) 5、数据库字典视图ALL_***视图只包含当前用户拥有的数据库对象信息。 ( F ) 8、数据字典中的内容都被保存在SYSTEM表空间中。( T ) 9、HAVING后面的条件中可以有聚集函数,比如SUM(),AVG()等, WHERE 后面的 条件中也可以有聚集函数。( F ) 10、"上海西北京" 可以通过like ‘%上海_’查出来。( F
)
11、 表空间是oracle 最大的逻辑组成部分。Oracle数据库由一个或多个表空间 组成。 一个表空间由一个或多个数据文件组成,但一个数据文件只能属于一个表 空间。( T ) 12、表空间分为永久表空间和临时表空间两种类型。( T ) 13、truncate是DDL操作,不能 rollback。( T ) 14、 如果需要向表中插入一批已经存在的数据, 可以在INSERT语句中使用WHERE 语句。( F ) 15、Oracle数据库中字符串和日期必须使用双引号标识。( F ) 16、Oracle数据库中字符串数据是区分大小写的。( T )
17、Oracle数据库中可以对约束进行禁用,禁用约束可以在执行一些特殊操作 时候保证操作能正常进行。( F )
18、为了节省存储空间,定义表时应该将可能包含NULL值的字段放在字段列表 的末尾。( T ) 20、在连接操作中,如果左表和右表中不满足连接条件的数据都出现在结果中, 那么这种连接是全外连接。( T ) 21、自然连接是根据两个表中同名的列而进行连接的,当列不同名时,自然连接 将失去意义。( T ) 23、PL/sql代码块声明区可有可无。( T ) 24、 隐式游标与显式游标的不同在于显式游标仅仅访问一行, 隐式的可以访问多
行。( F )
25、隐式游标由PL/SQL维护,当执行查询时自动打开和关闭。( T ) 26、显式游标在程序中显式定义、打开、关闭,游标有一个名字。( T )
27、隐式游标的游标属性前缀是SQL。( T ) 28、显式游标的游标属性的前缀是游标名。( T ) 29、隐式游标的属性%ISOPEN总是为FALSE。(
T ) 30、显式游标的%ISOPEN根据游标的状态确定值(
F )
31、隐式游标的SELECT语句带有INTO子串,只有一行数据被处理。( T ) 32、 显式游标可以处理多行数据, 在程序中设置循环, 取出每一行数据。 ( T
)
34、可以在PL/SQL中使用GOTO语句使运行流程进行跳转。( F )
35、因为存储过程不返回值,使用时只能单独调用;而函数却能出现在能放置表 达式的任何位置。( Y )
查看页面:http://wenku..com/view/d64574cd8bd63186bcebbc8c.html
5. oracle数据库面试题
1、b没有访问表employee的权限,或者有权限但是在做desc时没有加用户名在表前面。
2、在建表时设置了max extent参数导致了表extent数满了之后不能再进行扩展。
3、tablespace full表示该表空间没有可扩展的块了,这是设置了datafile为autoextend off后或者系统中没有可扩展的物理空间导致。
4、首先我需要有一张主表(pri)拥有关键字段(id),然后分两种情况,一种是目标表不存在的情况那么我需要建立目标表,如:create table oerder(id not null,aa char(8),id_p int, primary key(id),forergn key (id_p) references pri(id));。另一种情况是目标表存在,则增加约束条件:alter table order add foreign key (id_p) references pri(id);
5、pct_increase代表的是表在做了第一次extent后,下次再扩展时的增量,它是一个百分比值,也就是说,如果你设置了该值为50那么在表下一次扩展时扩展量就增加为150%。这是个很“恐怖”的设置,如果你使用了它那么有可能你会发现你的表空间很快就没有可扩展的地方了。
6、英文不好,题目意思没读懂。
7、这题还是分两种情况,一种是nt server就是你的database server,那么你可能需要先在nt server上确认listener已经启动,然后进行ping和tracert看看是否是网络问题,最后检查pc上的tnsnames.ora配置文件是否正确,在pc上做tracerc看网络链接是否正常?检查pc上防火墙的设置等。如果nt server 不是你的database server那么说明你的database server的网络链接是正常的,那么需要的就是:检查pc上的tnsnames.ora配置文件是否正确,在pc上做tracerc看网络链接是否正常,检查pc上防火墙的设置等。当然还有一种比较特殊的情况,在pc安装了64位win操作系统+32位的oracle时会发生在cmd下可以进行链接,但是使用oracle的其他连接方式如客户端,oem等等就会报tns错误,这是oracle本身的bug。
8、char和varchar2最根本的区别就在于一个是固定长度,另一个是可变长度。它们对空间的占用量是不同的,在同样长度的字符下char类型的需要用空字符补充不足的字符数,而varchar2则不会。当然运行效率上char占优。
9、这个太长,懒得打了。
6. 一道Oracle数据库题:
select name,
max(decode(subject,'语文',score,0)) 语文,
max(decode(subject,'数学',score,0)) 数学,
max(decode(subject,'英语',score,0)) 英语
from tablename
group by name
7. ORACLE数据库面试题
1.
update t
set logdate=to_date('2003-01-01','yyyy-mm-dd')
where logdate=to_date('2001-02-11','yyyy-mm-dd');
2.
select *
from t
where name in (select name from t group by name having coung(*)>1)
order by name;--没说清楚,到底是升序还是降序
3.
select ID,NAME,ADDRESS,PHONE,LOGDATE
from
(
select t.*,row_number() over(partition by name order by name) rn
from t
)
where rn = 1;
4.
update t
set (address,phone)=
(select address,phone from e where e.name=t.name);
5.
select *
from t
where rownum <=5
minus
select *
from t
where rownum <=2;
也没什么特别的地方,有些题目用oracle特有的函数去做会比较简单,像在第三题中用到的oracle的分析函数,以及在第一题中用到的oracle的to_char()函数。
这几个题目主要是看你能不能使用oracle的函数去处理
8. oracle数据库题目
createorreplacefunction(p_coursenameinvarchar2)
returnvarchar2
is
v_course_namevarchar2(20);
v_currentstudentsnumber(3);
v_maxstudentsnumber(3);
v_resultvarchar2(30);
begin
v_course_name:=p_coursename;
selectt.current_students,t.max_studentsintov_currentstudents,v_maxstudentsfromclassestwheret.course_name=v_course_name;
selectcasewhenv_currentstudents/v_maxstudents=1then'已满'
whenv_currentstudents/v_maxstudents<1then'还有一些位置'
whenv_currentstudents/v_maxstudents<0.8then'还有较多位置'
whenv_currentstudents/v_maxstudents<0.6then'有非常多的位置'
whenv_currentstudents/v_maxstudents=0then'当前尚无选修'end
intov_resultfromal;
returnv_result;
exception
whenothersthen
returnnull;
end;
9. oracle数据库关于查询的一些习题.
1、select * from t_download where down_date>=to_date('2012-03-07 15','yyyy-mm-dd HH24') and rownum<=100 order by down_date desc;
2、select price_id,app_date from t_appinfo where app_id in (select app_id from t_download where trunc(down_date)=trunc(sysdate-1);
3、select log_id from t_download group by log_id having count(log_id)>50;
4、select * from t_appinfo where app_name like '%中%';
5、select substr(app_id,5,1),substr(app_id,8,1) from t_appinfo;