Oracle面试试题

以下是小编为大家收集的Oracle面试试题,本文共11篇,欢迎参阅,希望可以帮助到有需要的朋友。

Oracle面试试题

1. 如何建立一个备份控制文件?

解答:Alter database backup control file to trace.

2. 给出数据库正常启动所经历的几种状态 ?

解答:

STARTUP NOMOUNT C 数据库实例启动

STARTUP MOUNT C 数据库装载

STARTUP OPEN C 数据库打开

3. 哪个column可以用来区别V$视图和GV$视图?

解答: INST_ID 指明集群环境中具体的某个instance 。

4. 如何生成explain plan?

解答:

运行utlxplan.sql. 建立plan 表针对特定SQL语句,使用 explain plan set statement_id = ‘tst1′ into plan_table 运行utlxplp.sql 或 utlxpls.sql察看explain plan

5. 如何增加buffer cache的命中率?

解答:在数据库较繁忙时,适用buffer cache advisory 工具,查询v$db_cache_advice . 如果有必要更改,可以使用 alter system setdb_cache_size 命令

6. ORA-01555的应对方法?

解答:具体的出错信息是snapshot too old within rollback seg , 通常可以通过增大rollback seg来解决问题。当然也需要察看一下具体造成错误的SQL文本

7. 解释$ORACLE_HOME和$ORACLE_BASE的区别?

解答:ORACLE_BASE是oracle的根目录,ORACLE_HOME是oracle产品的目录

8. 如何判断数据库的时区?

解答:SELECT DBTIMEZONE FROM DUAL;

22. 解释GLOBAL_NAMES设为TRUE的用途

解答:GLOBAL_NAMES指明联接数据库的方式。如果这个参数设置为TRUE,在建立数据库链接时就必须用相同的名字连结远程数据库

9。如何加密PL/SQL程序?

解答:WRAP

10. 解释FUNCTION,PROCEDURE和PACKAGE区别

解答:function 和procedure是PL/SQL代码的集合,通常为了完成一个任务。procedure 不需要返回任何值而function将返回一个值在另一方面,Package是为了完成一个商业功能的一组function和proceudre的集合

11.解释归档和非归档模式之间的不同和它们各自的优缺点

答:归档模式是指你可以备份所有的数据库 transactions并恢复到任意一个时间点。非归档模式则相反,不能恢复到任意一个时间点。但是非归档模式可以带来数据库性能上的少许提高。

12.解释$ORACLE_HOME和$ORACLE_BASE的区别?

答:ORACLE_BASE是oracle的根目录,ORACLE_HOME是oracle产品的目录。

13.获取某个字符字段的最后3个字符的函数是什么?

答:select substr (字段,(length(字段)-3)) from 表

14.取当前系统时间点日期(不包括年月)的SQL写法是怎样的?

答:Select substr (to_char(sysdate,’YYYYMMDDh24hh:MM:SS’),5) from dual;

15.返回大于等于N的最小整数值?

答:select ceil(N) from dual;

16.将根据字符查询转换后结果,规则为:’A’转换为’男’,’B’转换为’女’,其他字符转换为’未知’,请用一个SQL语句写出。

答:select decode(字符,’A’,’男’,’B’,’女’,’未知’) from dual;

17.如何搜索出前N条记录?

答:select * from 表 where Rownum

18.如何搜索出第N~M条记录?

答:select * from 表 where Rownum

Minus

select * from 表 where Rownum

19.有一个数据表(TEST),字段如下:

ID number

PARENT_ID number

NAME Varchar(20)

请使用PL/SQL来按父子层次关系查询出该表的所有数据

答:Select * from test a, test b Where a.parent_id = b.id;

20.怎样用SQL语句实现查找一列中的第N大值?

答:select * from (select * from 表 order by 列名 Desc) where Rownum

Minus select * from (select * from 表 order by 列名 Desc) where Rownum

1.以下命令哪个是 SQL*PLUS 命令?

A.UPDATE

B.EDIT

C.SELECT

D.ALTER TABLE

2.用SQLPLUS的_____命令可以查看表的结构信息,包括列的名称和数据类型

A DESCRIPTION

B DESC

C SHOW TABLE

D SHOW USER

3. Oracle的前端工具是 :

A SQL*PLUS

B C++

C PL/SQL

D JAVA

4. 在SQLPLUS中,如何运行SQL脚本程序

A /

B @脚本

C EXE 脚本

D 不能在SQLPLUS中直接运行脚本

5. 用命令将SQLPLUS缓冲区中的内容保存到文件中,使用下列哪种方法

A 将缓冲区的内容Ctrl+C,然后再Ctrl+V到文件中即可

B 使用SAVE命令参数是文件路径

C WRITE 方式,参数是文件路径

D Oracle会自动保存

6. 用来设置一行能够显示的字符长度的命令是

A SET LINESIZE

B SET LINE

C SET LINEBUFFER

D SET SIZELINE

7. 以下哪个命令用来设置查询显示结果的列宽

A SET COLUMN SIZE

B COLUMN 列 FORMAT 长度

C COLUMN 列 长度

D 长度 OF COLUMN

8. 如何判断数据库的时区?

解答:SELECT DBTIMEZONE FROM DUAL;

22. 解释GLOBAL_NAMES设为TRUE的用途

解答:GLOBAL_NAMES指明联接数据库的方式。如果这个参数设置为TRUE,在建立数据库链接时就必须用相同的名字连结远程数据库

9. 如何加密PL/SQL程序?

解答:WRAP

10. 解释FUNCTION,PROCEDURE和PACKAGE区别

解答:function 和procedure是PL/SQL代码的集合,通常为了完成一个任务。procedure 不需要返回任何值而function将返回一个值在另一方面,Package是为了完成一个商业功能的一组function和proceudre的集合

11. 解释TABLE Function的用途

解答:TABLE Function是通过PL/SQL逻辑返回一组纪录,用于普通的表/视图。他们也用于pipeline和ETL过程。

12. 举出3种可以收集three advisory statistics

解答:Buffer Cache Advice, Segment Level Statistics, Timed Statistics

13. Audit trace 存放在哪个oracle目录结构中?

解答:unix $ORACLE_HOME/rdbms/audit Windows the event viewer

14. 解释materialized views的作用

解答:Materialized views 用于减少那些汇总,集合和分组的信息的集合数量。它们通常适合于数据仓库和DSS系统。

15. 当用户进程出错,哪个后台进程负责清理它

解答: PMON

16. 哪个后台进程刷新materialized views?

解答:The Job Queue Processes.

17. 如何判断哪个session正在连结以及它们等待的资源?

解答:V$SESSION / V$SESSION_WAIT

18. 描述什么是 redo logs

解答:Redo Logs 是用于存放数据库数据改动状况的物理和逻辑结构。可以用来修复数据库.

19. 如何进行强制LOG SWITCH?

解答:ALTER SYSTEM SWITCH LOGFILE;

20. 举出两个判断DDL改动的方法?

解答:你可以使用 Logminer 或 Streams

1、冷备份和热备份的不同点以及各自的优点

解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘)

2、如果你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?

解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。

3、如何转换init.ora到spfile?

解答:使用create spfile from pfile 命令.

4、解释data block , extent 和 segment的区别(这里建议用英文术语)

解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents被称为该对象的segment.

5、给出两个检查表结构的方法

解答:

1、DESCRIBE命令

2、DBMS_METADATA.GET_DDL 包

6、怎样查看数据库引擎的报错

解答:alert log.

7、比较truncate和 命令

解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要rollback segment .而Delete是DML操作, 需要rollback segment 且花费较长时间.

8、使用索引的理由

解答:快速访问表中的data block

9、给出在STAR SCHEMA中的两种表及它们分别含有的数据

解答:Fact tables 和dimension tables. fact table包含大量的主要的信息而dime nsion tables 存放对fact table 某些属性描述的信息

10、FACT Table上需要建立何种索引?

解答:位图索引 (bitmap index)

11、给出两种相关约束?

解答:主键和外键

12、如何在不影响子表的前提下,重建一个母表

解答:子表的外键强制实效,重建母表,激活外键

13、解释归档和非归档模式之间的不同和它们各自的优缺点

解答:归档模式是指你可以备份所有的数据库 transactions并恢复到任意一个时间点。非归档模式则相反,不能恢复到任意一个时间点。但是非归档模式可以带来数据库性能上的少许提高.

14、如何建立一个备份控制文件?

解答:Alter database backup control file to trace.

15、给出数据库正常启动所经历的几种状态?

解答:

STARTUP NOMOUNT ?C 数据库实例启动

STARTUP MOUNT - 数据库装载

STARTUP OPEN ?C 数据库打开

16、哪个column可以用来区别V$视图和GV$视图?

解答:INST_ID 指明集群环境中具体的 某个instance 。

17、如何生成explain plan?

解答:运行utlxplan.sql. 建立plan 表

针对特定SQL语句,使用 explain plan set statement_id = 'tst1' into plan_table

运行utlxplp.sql 或 utlxpls.sql察看explain plan

18、如何增加buffer cache的命中率?

解答:在数据库较繁忙时,适用buffer cache advisory 工具,查询v$db_cache_advice.如果有必要更改,可以使用 alter system set db_cache_size 命令

19、ORA-01555的应对方法?

解答:具体的出错信息是snapshot too old within rollback seg , 通常可以通过增大rollback seg来解决问题。当然也需要察看一下具体造成错误的SQL文本

20、解释$ORACLE_HOME和$ORACLE_BASE的区别?

解答:ORACLE_BASE是oracle的根目录,ORACLE_HOME是oracle产品的目录。

[oracle数据库 面试宝典]

甲骨文(Oracle)面试题目

个人的问题和解答,

甲骨文(Oracle)面试题目

,也许你不必在面试过程中给出完全详尽的答案,只需要通过你的解答使面试考官了解你

对ORACLE概念的熟悉程度。

1.解释冷备份和热备份的不同点以及各自的优点

解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷

备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份

时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于

它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库

性能会比归档模式稍好。(因为不必将archive log写入硬盘)

2.你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?

解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。

3.如何转换init.ora到spfile?

解答:使用create spfile from pfile 命令.

4.解释data block , extent 和 segment的区别(这里建议用英文术语)

解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理

存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents被

称为该对象的segment.

5.给出两个检查表结构的方法

解答:1.DESCRIBE命令

2.DBMS_METADATA.GET_DDL 包

6.怎样查看数据库引擎的报错

解答:alert log.

7.比较truncate和delete 命令

解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动

HWK,不需要rollback segment .而Delete是DML操作, 需要rollback segment 且花费较长

时间.

8.使用索引的理由

解答:快速访问表中的data block

9.给出在STAR SCHEMA中的两种表及它们分别含有的数据

解答:Fact tables 和dimension tables. fact table包含大量的主要的信息而dime

nsion tables 存放对fact table 某些属性描述的信息

10.FACT Table上需要建立何种索引?

解答:位图索引 (bitmap index)

11. 给出两种相关约束?

解答:主键和外键

12. 如何在不影响子表的前提下,重建一个母表

解答:子表的外键强制实效,重建母表,激活外键

13. 解释归档和非归档模式之间的.不同和它们各自的优缺点

解答:归档模式是指你可以备份所有的数据库 transactions并恢复到任意一个时间点

,非归档模式则相反,不能恢复到任意一个时间点。但是非归档模式可以带来数据库性能

上的少许提高.

14. 如何建立一个备份控制文件?

解答:Alter database backup control file to trace.

15. 给出数据库正常启动所经历的几种状态 ?

解答:STARTUP NOMOUNT – 数据库实例启动

STARTUP MOUNT - 数据库装载

STARTUP OPEN – 数据库打开

16. 哪个column可以用来区别V$视图和GV$视图?

解答:INST_ID 指明集群环境中具体的 某个instance 。

17. 如何生成explain plan?

解答:运行utlxplan.sql. 建立plan 表

针对特定SQL语句,使用 explain plan set statement_id = 'tst1' into pl

an_table ,运行utlxplp.sql 或 utlxpls.sql察看explain plan

18. 如何增加buffer cache的命中率?

解答:在数据库较繁忙时,适用buffer cache advisory 工具,查询v$db_cache_adv

ice.如果有必要更改,可以使用 alter system set db_cache_size 命令

19. ORA-01555的应对方法?

解答:具体的出错信息是snapshot too old within rollback seg , 通常可以通过增

大rollback seg来解决问题。当然也需要察看一下具体造成错误的SQL文本

20. 解释$ORACLE_HOME和$ORACLE_BASE的区别?

解答:ORACLE_BASE是oracle的根目录,ORACLE_HOME是oracle产品的目录。

1.解释冷备份和热备份的不同点以及各自的优点

解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘)

2.你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?

解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。

3.如何转换init.ora到spfile?

解答:使用create spfile from pfile 命令.

4.解释data block , extent 和 segment的区别(这里建议用英文术语)

解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents被称为该对象的segment.

5.给出两个检查表结构的方法

解答:1.DESCRIBE命令

2.DBMS_METADATA.GET_DDL 包

6.怎样查看数据库引擎的报错

解答:alert log.

7.比较truncate和 命令

解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要rollback segment .而Delete是DML操作, 需要rollback segment 且花费较长时间.

8.使用索引的理由

解答:快速访问表中的data block

9.给出在STAR SCHEMA中的两种表及它们分别含有的数据

解答:Fact tables 和dimension tables. fact table包含大量的主要的信息而dimension tables 存放对fact table 某些属性描述的信息

10.FACT Table上需要建立何种索引?

解答:位图索引 (bitmap index)

11. 给出两种相关约束?

解答:主键和外键

12. 如何在不影响子表的前提下,重建一个母表

解答:子表的外键强制实效,重建母表,激活外键

13. 解释归档和非归档模式之间的不同和它们各自的优缺点

解答:归档模式是指你可以备份所有的数据库 transactions并恢复到任意一个时间点。非归档模式则相反,不能恢复到任意一个时间点。但是非归档模式可以带来数据库性能上的少许提高.

14. 如何建立一个备份控制文件?

解答:Alter database backup control file to trace.

15. 给出数据库正常启动所经历的几种状态 ?

解答:STARTUP NOMOUNT C 数据库实例启动

STARTUP MOUNT - 数据库装载

STARTUP OPEN C 数据库打开

16. 哪个column可以用来区别V$视图和GV$视图?

解答:INST_ID 指明集群环境中具体的 某个instance 。

17. 如何生成explain plan?

解答:运行utlxplan.sql. 建立plan 表

针对特定SQL语句,使用 explain plan set statement_id = 'tst1' into plan_table

运行utlxplp.sql 或 utlxpls.sql察看explain plan

18. 如何增加buffer cache的命中率?

解答:在数据库较繁忙时,适用buffer cache advisory 工具,查询v$db_cache_advice.如果有必要更改,可以使用 alter system set db_cache_size 命令

19. ORA-01555的应对方法?

解答:具体的出错信息是snapshot too old within rollback seg , 通常可以通过增大rollback seg来解决问题。当然也需要察看一下具体造成错误的SQL文本

20. 解释$ORACLE_HOME和$ORACLE_BASE的区别?

解答:ORACLE_BASE是oracle的根目录,ORACLE_HOME是oracle产品的目录。

[oracle数据库面试宝典]

试题1:为什么你是这份工作的最佳人选?

A、我干过不少这种职位,我的经验将帮助我胜任这一岗位,

B、我干什么都很出色。

C、通过我们之间的交流,我觉得这里是一个很好的工作地点。

D、你们需要可以生产出“效益”的人,而我的背景和经验可以证明我的能力,例如:我曾经……

试题2:判断性问题,你有没有创造性?你能不能在压力下工作?

A、回答“是”或“否”,

B、回答“是”或“否”,并给出一个具体的例子。

C、回答“是”或“否”,并做进一步的解释。

试题3:描述一下你自己。

A、列举自己的'个人经历、业余兴趣爱好等。

B、大肆宣扬一下自己良好的品德和工作习惯。

C、列举3个自己的性格与成就的具体案例。

oracle经典20道笔试题

1.列出至少有一个员工的所有部门,

select dept.deptno,dept.dname

from dept,emp

where dept.deptno=emp.deptno

2.列出薪金比“SMITH”多的所有员工。

select * from emp

where sal >(select sal from emp where ename=’SMITH’)

3.列出所有员工的姓名及其直接上级的姓名。

select yg.ename,sj.ename

from emp yg,emp sj

where yg.mgr=sj.empno

4.列出受雇日期早于其直接上级的所有员工。

select yg.ename,sj.ename

from emp yg join emp sj on yg.mgr=sj.empno

where yg.hiredate

5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。

select dept.deptno,dept.dname,emp.empno,emp.ename

from dept left join emp

on dept.deptno=emp.deptno

6.列出所有“CLERK”(办事员)的姓名及其部门名称。

select * from dept,emp

where dept.deptno=emp.deptno

and job=’CLERK’

7.列出最低薪金大于1500的各种工作。

select job from emp

group by job

having min(sal)>1500

8.列出在部门名称为“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。

方法一:

select emp.ename

from dept,emp

where dept.deptno=emp.deptno

and dname=’SALES’

方法二:

select * from emp

where deptno=(select deptno from dept where dname=’SALES’)

9.列出薪金高于公司平均薪金的所有员工。

select * from emp

where sal>(select avg(sal) from emp)

对比:列出薪金高于本部门平均薪金的所有员工。

方法一:

select * from emp a

where a.sal>(select avg(sal) from emp b where b.deptno=a.deptno)

缺点:相关子查询,效率低。

方法二:

select empno,ename,sal from

emp a,(select avg(sal) avg_sal from emp b where b.deptno=a.deptno) b

where a.deptno=b.deptno

and a.sal>b.avg_sal

10.列出与“SCOTT”从事相同工作的所有员工。

select * from emp

where job=(select job from emp where ename=’SCOTT’)

11.列出薪金等于部门30中员工的薪金的`所有员工的姓名和薪金,

select ename,sal from emp

where sal=any(select sal from emp where deptno=30 )

12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。

方法一:

select ename,sal from emp

where sal>all(select sal from emp where deptno=30 )

方法二:

select ename,sal from emp

where sal>(select max(sal) from emp where deptno=30 )

13.列出在每个部门工作的员工数量、平均工资和平均服务期限。

select deptno,avg(trunc((sysdate-hiredate)/365)) as year

from emp

group by deptno

–参考:截断,取整函数

select trunc(99.9) from dual;

返回

99

14.列出所有员工的姓名、部门名称和工资。

select d.dname,e.ename,e.sal

from dept d,emp e

where d.deptno=e.deptno

说明:每个字段都加表前缀,效率要高些

15.列出所有部门的详细信息和部门人数。

select dept.deptno,dept.dname,count(*)

from dept,emp

where dept.deptno=emp.deptno

group by dept.deptno,dept.dname

16.列出各种工作的最低工资。

select job,min(sal) from emp group by job

17.列出各个部门的MANAGER(经理)的最低薪金。

select deptno,min(sal) from emp where job=’MANAGER’ group by deptno

18.列出所有员工的年工资,按年薪从低到高排序。

select empno,ename,sal*12 as 年薪 from emp

order by sal

19. 求各种工作工资最低的员工。

方法一:

select * from emp a

where sal=(select min(sal) from emp b where b.job=a.job)

方法二:

select emp.*

from emp a,( select job,min(sal) min_sal from emp group by job) b

where a.job=b.job and a.sal=b.min_sal

20. 列出各种工作工资前3名的员工

select * from (

select empno,ename,sal,job,

dense_rank over(partition by job order by sal desc) as 名次

from emp ) a

where a.名次

order by job;

说明:用到了Oracle强大的“分区排名技术”,其中“dense_rank()”是Oracle的解析函数。

笔试题oracle financials developer

选择题

1:下列数据中,不是C语言常量的是

A.′ ′

B.″a″

C.e-2

D.012

2:对于do-while语句,错误的说法是

A.先执行循环体后判断循环条件

B.循环体至少要执行一次

C.循环体有可能一次也不执行

D.循环体中可以包含若干条语句

3:下列说法中错误的是

A.C语言中循环嵌套的层数没有限定

B.C语言中的内部函数只能在本文件中被调用

C.用typedef语句定义的数据类型名称必须是大写字母

D.C语言中的continue语句,可以通过改变程序的结构而省略

4:以下叙述正确的是

A.宏名必须用大写的英文字母表示

B.宏定义不仅是符号替换,也可以赋值

C.宏替换是在程序编译时完成的,不占用程序运行时间

D.引用带参数的宏时,实际参数与宏定义中的形式参数类型应一致

5:设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′′};那么

A.x数组的'长度等于y数组的长度

B.x数组的长度大于y数组的长度

C.x数组的长度少于y数组的长度

D.x数组与y数组的存储区域相同

选择题

1:下列数据中,不是C语言常量的是

A.′ ′

B.″a″

C.e-2

D.012

2:对于do-while语句,错误的说法是

A.先执行循环体后判断循环条件

B.循环体至少要执行一次

C.循环体有可能一次也不执行

D.循环体中可以包含若干条语句

3:下列说法中错误的是

A.C语言中循环嵌套的层数没有限定

B.C语言中的内部函数只能在本文件中被调用

C.用typedef语句定义的数据类型名称必须是大写字母

D.C语言中的continue语句,可以通过改变程序的结构而省略

4:以下叙述正确的是

A.宏名必须用大写的英文字母表示

B.宏定义不仅是符号替换,也可以赋值

C.宏替换是在程序编译时完成的,不占用程序运行时间

D.引用带参数的宏时,实际参数与宏定义中的形式参数类型应一致

5:设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′′};那么

A.x数组的长度等于y数组的长度

B.x数组的长度大于y数组的长度

C.x数组的长度少于y数组的长度

D.x数组与y数组的存储区域相同

6:下列错误的是

A.char s[]=″China″;

B.char s[10]={″China″};

C.char s[10]; s=″China″;

D.char s[10]={′C′, ′h′, ′i′,;′n′, ′a′};

7:对于while语句,错误的说法是

A.用条件控制循环体的执行次数

B.循环体至少要执行一次

C.循环体有可能一次也不执行

D.循环体中可以包含若干条语句

8:执行语句“ for(s=0,i=1;i

A.22,13

B.12,10

C.22,10

D.12,13

9:设enum color {purple, black, red, white} d;, 若将d赋值为枚举常量red,则正确的是

A.d=(enum color)2;

B.d=(enum color)3;

C.d=″red″;

D.d=color;

10:执行语句“ k=5 | 3; ”后,变量 k 的当前值是

A.1

B.8

C.7

D.2

11:若定义了int a;char b;float c;,则表达式a*b-c的类型是

A.float

B.int

C.char

D.double

12:设char str1[10]=″ABCDE″,str2[10]=″XYZ″;则执行语句:printf(″%d″ ,strlen(strcpy(str1,str2)));后的输出是

A.3

B.5

C.8

D.9

13:错误的实型(浮点型)常数是

A..0

B.0.E0

C.0.0

D.0E+0.0

14:下列运算符中,优先级最高的是

A.[]

B.++

C.%

D.&&

15:若有说明语句“int a[10],*p=a;”,对数组元素的正确引用是

A.a[p]

B.P[a]

C.*(P+2)

D.P+2

16:以下对枚举类型的定义中正确的是

A.enum a={one,two,three};

B.enum a{one=9,two=-1,three};

C.enum a={“one”,“two”,“three”};

D.enum a{“one”,“two”,“three”};

17:若变量 a , b 已经正确定义并赋值,符合 C 语言语法的表达式是

A.a 2 +b

B.a*a+b

C.a×a+b

D.a·a+b

简答题

18:Security 公司的网络管理工程师Mr. leak最近发现有不少来自公司外部IP的请求,试图非法访问公司内部资源,为了不影响数据访问流程,

oracle financials developer笔试题

他不得不写一个高效的程序——一个工作在Ipv4上的防火墙,如果请求来自非授权的ip地址,则将请求丢弃。为了便于管理,通过文本文件IP.TXT来配置授权的IP地址,文件格式为每行(’/n’)一个 IP地址(或IP段),范围不超过一个B类。例如:

162.105.91.163

59.66.105.0 59.66.105.255

211.71.0.0 211.71.255.255

限制:IP段的起止地址间以空格隔开。文件不超过10万行,内存不超过4M字节。

要求:请编写一个程序,读入IP.TXT文件。并从标准输入接受一个IP地址。如果该地址在授权范围内,则在标准输出上打印Y,否则打印N.如果输入为一个空行,程序结束。

请给出思路(文字描述),完成代码,分析你采用算法的优劣。请列举测试方法和思路

甲骨文(oracle)技术笔试题

技术方面,英语的和MT差不多,

不过技术测试,主要是考java和数据库,

后面五道题,

1,什么叫Normalization.什么叫3NF,并请列出1NF和2NF..

2,什么叫revised key index

3,什么叫死锁,举一个引起数据库操作中死锁的例子

4, BYTE[] buf = BYTE[1024];

in.read(buf)

in是一个接收图像数据的网络IO流,请指出这段代码有什么问题,并请用java代码改进它

5,你正在分析一个子系统的接口,发现接口很多,

然后你同事劝你用Fecade, 问你用Fecade有什么好处

有三个用户test1,test2,test3, 三个用户都具有DBA色色权限。

用TEST1用户创建一个表T1,并将其查询权限授予TEST2:

SQL>create table t1 as select * from all_objects;

表已创建。

SQL>grant select on t1 to test2;

授权成功。

SQL>create table t1 as select * from all_objects;

表已创建。

SQL>grant select on t1 to test2;

授权成功。

用TEST2用户创建一个视图,视图的基表是TEST1.T1,并将查询权限授予TEST3:

SQL>create view v_t1 as select * from test1.t1;

视图已建立。

SQL>grant select on v_t1 to test3;

授权成功。

SQL>create view v_t1 as select * from test1.t1;

视图已建立。

SQL>grant select on v_t1 to test3;

授权成功。

TEST3用户查询视图TEST2.V_T1:

SQL>select * from test2.v_t1 where rownum

select * from test2.v_t1 where rownum

*

ERROR 位于第 1 行:

ORA-01031: 权限不足

SQL>select * from test2.v_t1 where rownum

select * from test2.v_t1 where rownum

*

ERROR 位于第 1 行:

ORA-01031: 权限不足

可以看到报了权限不足的错误,就算这里TEST3用户有DBA权限。

这到底是怎么回事呢?

其实视图的权限,有两点需要引起注意:

1. 视图中,类似于定义者权限的存储过程,是屏蔽了角色权限的。比如如果TEST1没有显式地将T1表的SELECT权限给予TEST2,那么TEST2在创建视图V_T1时也会报ORA-01031错误,即使TEST2用户拥有DBA角色权限。

2.如果在用户A的视图中,引用了其他用户B的表,用户A将视图的访问权限给予用户C,那么就变相地将用户B的表的访问权限给予了用户C,因此,用户A必须有将用户B的表的访问权限转授用户C的权限,也就是用户B在授予A权限时,必须使用with grant option。

显然这里正是由于第2点的原因,导致用户TEST3不能访问视图。用户TEST1执行下面的操作,将解决这个问题:

SQL>grant select on t1 to test2 with grant option;

授权成功。

SQL>grant select on t1 to test2 with grant option;

授权成功。

对于视图的UPDATE,DELETE权限,同样是如此。

在测试时,有一个现象,有点意思。就是如果用户TEST2没有显式地把V_T1的SELECT权限授予TEST3,而TEST3在有SELECT ANY TABLE或DBA权限时,则查询这个视图时不会报权限不足的错误。由于有SELECT ANY TABLE权限的存在,所有的用户表都可以被访问。但是显式授予表的权限时,似乎表的权限有更高的优先级,并且没有跟系统权限和角色权限进行结合。或者版本不同,表现得不一样,在我的测试中,是Oracle 9.2.0.8 for Windows。

1.军校面试问题和答案面试问题及答案参考

2.人事面试问题答案

3.华为面试问题答案

4.团总支面试问题及答案

5.面试客服问题及答案

6.教师面试问题及答案精选

7.医生面试问题及答案

8.盘点教师面试问题及答案

9.面试问题大全及答案

10.单招面试问题及答案