Oracle常见面试题_Oracle面试笔试题目及答案 - 极悦
面试题首页 > Oracle面试题

Oracle常见面试题

001Oracle中数字函数有哪些?

NVL( string1, replace_with) :如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL。
SIGN(n) :该函数用于检测数字的正负.如果数字n小于0,则函数的返回值位-1;如果数字n的值等于0,则函数的返回值等于0,如果数字n大于0,则函数的返回值等于1。
CEIL(n) :该函数用于返回大于等于数字n的最小整数。
FLOOR(n):该函数用于返回小于等于数字n的最大整数。
MOD(m,n) :该函数用于返回两个数字相除后的余数.如果数字n为0,则返回结果为m。
ROUND(n,[m]) :该函数用于执行四舍五入运算;如果省略m,则四舍五入至整数位;如果m是负数,则四舍五入到小数点前m位;如果m是整数,则四舍五入至小数点后m位。
TRUNC(n,[m]) :该函数用于截取数字。如果省略数字m,则将数字n的小数部分截去;如果数字m是正数,则将数字n截取到小数点后的第m位;如果数字m是负数,则将数字n截取到小数点前m位。

002Oracle中字符函数有哪些?

TRIM([ { { LEADING | TRAILING | BOTH },截取特定字符串。
ASCII(char):该函数用于返回字符串首字符的ASCII值。
CHR(char) :该函数用于将ASCII码值转变为字符。
CONCAT:该函数用于连接字符串,其作用于连接操作符(||)完全相同。
LENGTH(char):该函数用于返回字符串的长度,如果字符串的类型为CHAR,则其长度包括所有的后缀空格:如果char是null,则返回null。

003Oracle中日期时间函数有哪些?

ADD_MONTHS(d,n):该函数用于返回特定日期时间 d 之后(或之前)的n个月所对应的日期时间(n为正整数表示之后,n为负整数表示之前)。
TRUNC(d,[fmt]) :该函数用于截取日期时间数据.如果fmt指定年度,则结果为本年度的1月1日;如果fmt指定月,则结果为本月1日。
MOTNS_BETWEEN(d1,d2):该函数用于返回d1和d2之间相差的月数.如果d1小于d2,则返回负数;如果d1和d2的天数相同,或都是月底,则返回整数;否则Oracle以每月31天为准来计算结果的小数部分。
NEXT_DAY(d,char):该函数用于返回指定日期后的第一个工作日(由char指定)所对应的日期。

004Oracle中转换函数有哪些?

TO_CHAR(data[,fmt[,nls_param]]) :该函数用于将日期值转变为字符串,其中fmt用于指定日期格式,nls_param用于指定nls参数。
TO_CHAR(n[,fmt[,nls_param]]):用于将数字值转换为VARCHAR2数据类型。
TO_DATE(char[,fmt[,nls_param]]):该函数用于将符合指定日期的函数转变为DATE类型的数值。

005Oracle中解码函数?

DECODE函数为Oracle专属。

006Oracle中字符串用什么符号链接?

1)使用符号“||”

SELECT '工号为'||FNumber || '的员工姓名为' || FName FROM T_Employee WHERE FName IS NOT NULL 

2)使用CONCAT()函数进行拼接,Oracle中的concat函数仅支持两个字符串进行拼接,如果要再多,可以嵌套使用。

SELECT CONCAT('工号:',FNumber) FROM T_Employee 

007Oracle是怎样分页的?

Oracle中使用rownum来进行分页, 这个是效率最好的分页方法,hibernate也是使用rownum来进行oralce分页的

select * from ( select rownum r,a from tabName where rownum <= 20 ) where r > 10

008Oracle中数据类型?

字符类型:CHAR, VARCHAR2, NVARCHAR2
      CHAR(12)表示包含12个字节的信息,CHAR字段最多可存储2000字节信息,如果创建表时不指定CHAR长 度,则默认为1。Oracle一个汉字占3个字节,一个字母或数字占1个字节,CHAR(12)可存储4个汉字。
      VARCHAR2最多可存储4000字节的信息,VARCHAR2(n)中的n表示的是字节
      NVARCHAR2也是最多4000字节信息,NVARCHAR2(n)中的n表示的是字符长度。
数字类型:NUMBER、 INTEGER
      NUMBER(P, S)中P表示的是有效数字的位数,最多不超过38,S表示小数的位数。
      INTEGER是NUMBER的子类型,等于NUMBER(38, 0),用来存储整数。
浮点数:BINARY_FLOAT类型、BINARY_DOUBLE类型
日期类型:DATE、TIMESTAMP
LOB类型:CLOB、BLOB、NCLOB
      CLOB, 最大长度4G
      BLOB, 存储二进制文件,如图像、声音、视频等,最大长度4G
      NCLOB, 存储UNICODE类型数据,最大长度4G
LONG, RAW, LONG RAW类型
      LONG存储变长字符串,最多2G字符数据
      LONG RAW存储2G二进制数据
      RAW存储二进制或字符类型数据

009Oracle中数据类型间相互转换?

--转换日期型:to_date(x,y) --y的长度要和x保持一致
    eg: to_date(sysdate,'yyyy-mm-dd hh24:mi:ss')
--转换字符型:to_char()    --可以单独去'yyyy''mm''dd'...
--转换数字型:to_number()

010删除重复行的rowid写法?

delete from grade t2
where rowid != (select max(rowid)
                   from grade t
                  where t.name = '张三'
                    and t.subject = 'chinese')
   and t2.name = '张三'
   and t2.subject = 'chinese';
commit;

011比较truncate和delete命令 ?

Truncate 和delete都可以将数据实体删掉,truncate 的操作并不记录到 rollback日志,所以操作速度较快,但同时这个数据不能恢复
Delete操作不腾出表空间的空间
Truncate 不能对视图等进行删除
Truncate是数据定义语言(DDL),而delete是数据操纵语言(DML)

012表空间是什么?

tablespace --表空间对应用户数据的存储,在创建用户时一般会指定表空间,如果没,默认为users.存储用户的所有对象。
表空间包括:数据段segemnet --数据区extents --数据块data block,一个数据文件只能存储在一个表空间中。

013Oracle中function和procedure的区别?

function为函数,procedure为存储过程。
1)函数是存储过程的一种。
2)函数可以没有参数,但是一定需要一个返回值,存储过程可以没有参数,不需要返回值
3)函数return返回值没有返回参数模式,存储过程通过out参数返回值, 如果需要返回多个参数则建议使用存储过程
4)在sql数据操纵语句中只能调用函数而不能调用存储过程。

目录

返回顶部