首页 > 代码库 > Oracle常用的函数

Oracle常用的函数

1、常用的函数分为五大类:

字符函数、数字和日期函数、数字函数、转换函数、混合函数

2、字符函数

字符函数主要用于修改字符列。这些函数接受字符输入,返回字符或数字值。Oracle 提供的一些字符函数如下。

1. CONCAT (char1, char2)

返回连接“char2”的“char1”。

2. INITCAP(string)

将“string”的字符转成大写。 这个只能转换首字母为大写,慎用

3. LOWER (string)

将“string”转成小写。 这个是所有的字符都转换为小写,和上边的不一样

4. LPAD(char1,n [,char2])

返回“char1”,左起由“char2”中的字符补充到“n”个字符长。如果“char1”比“n”长,则函数返回“char1”的前“n”个字符。 示例

5. LTRIM(string,trim_set)

从左边删除字符,此处“string”是数据库的列,或者是字面字符串,而“trim_set” 是我们要去掉的字符的集合。 示例

6. REPLACE(string, if, then)

用 0 或其他字符代替字符串中的字符。“if”是字符或字符串,对于每个出现在“string”中的“if”,都用“then”的内容代替。 示例

7. RPAD(char1, n [,char2])

返回“char1”,右侧用“char2”中的字符补充到“n”个字符长。如果 “char1”比“n” 长,则函数返回“char1”的前“n”个字符。 示例

8. RTRIM(string,trim_set)

从右侧删除字符,此处“string”是数据库的列,或者是字面字符串,而“trim_set” 是我们要去掉的字符的集合。 示例

9. SOUNDEX(char)

返回包含“char”的表意字符的字符串。它允许比较英语中拼写不同而发音类似的字。 示例

10. SUBSTR(string, start [,count])

返回“string”中截取的一部分。该命令截取“string”的一个子集,从“start”位置开始,持续“count”个字符。如果我们不指定“count”,则从“start”开始截取到“string”的尾部。 示例

11. TRANSLATE(string, if, then)         这个和replace不知道有什么区别,这个限制定点位置,replace替换全部

“if”中字符的位置,并检查“then”的相同位置,然后用该位置的字符替换 “string”中的字符。 示例

12. UPPER(string)  这个是全部变大写

返回大写的“string”。 示例

13. ASCII(string)       写再多也没用,只返回第一个

该命令是“American Standard Code for Information Interchange”的缩写。它是使用数字表示可打印字符的基本规则。该函数返回 “string”中第一个(最左边)字符的 ASCII 值。 示例

14. INSTR (string, set[, start[, occurrence] ] )

该命令“string”中从“start”位置开始查找字符集合的位置,再查找“set”出现的第一次、第二次等等的“occurrence”(次数)。“start”的值也可以是负数,代表从字符串结尾开始向反方向搜索。该函数也用于数字和日期数据类型。 示例

15. LENGTH(string)

返回“string”的长度值。 示例

2、数据和日期函数

Oracle 在日期使用上允许极大的灵活性。由于可以在日期字段存储时间和日期,从而有函数可以既引用日期又引用时间。 Oracle 所提供的一些日期函数如下所示。

1. SYSDATE

返回当前的日期和时间。 示例

2. ADD_MONTHS(d, no_of_month)

返回带有“no_of_month”的日期“d”。参数“no_of_month”可为任何整数。 示例

3. LAST_DAY(month_day)

返回变量“month_day”中所指定月份的最后一天的日期。 示例

4. MONTHS_BETWEEN(d1, d2)

返回日期 d1 和 d2 之间的月份数。如果 d1 晚于 d2,结果为正,否则返回负数。 示例

5. NEXT_DAY(d, day_of_week)

返回由“day_of_week”命名的,在变量“d”指定的日期之后的第一个工作日的日期。参数“day_of_week”必须为该星期中的某一天。 示例

3、数字函数
数字函数接受数字输入,返回数字值作为输出。数字函数返回的值可精确至 38 个小数位数。Oracle 所提供的一些数字函数如下所示。

1. ABS(n)

返回 n 的绝对值。 示例

2. (n)

返回大于等于 n 的最小整数。 示例

3. FLOOR(n)

返回小于等于 n 的最大整数。 示例

4. MOD(m,n)

返回 m 被 n 除后的余数。然而如果 n 为 0,则返回 m。 示例

5. POWER(m, n)

返回 m 的 nth 乘方。底数 m 和指数 n 可为任何数,但如果 m 为负数,n 必须为整数。 示例

6. ROUND(value, precision)

Round 将“value”中给定的数值舍入到“precision”中指定的小数位。 示例

7. SQRT(n)

返回 n 的平方根。n 值不能为负。 示例

8. TRUNC(n[,m])

返回截尾取整到 m 小数位的 n。 示例

4、转换函数
除了字符、数值和日期函数外,Oracle 还提供转换函数。转换函数将值从一种数据类型转换为另一种数据类型。Oracle 所提供的一些转换函数如下所示。

1.TO_CHAR(d [, fmt ])

将 DATE 数据类型的“d”转换为 VARCHAR2 数据类型的值,格式由日期格式“fmt”所指定。如果省略了“fmt”,则将 d 按照默认的日期格式转化为 VARCHAR2 值。 示例

2.TO_CHAR(n [, fmt ])

使用可选的数字格式“fmt”将 NUMBER 数据类型的“n”转换成为 VARCHAR2 数据类型的值。如果省略了“fmt”,则将 n 转换为长度刚好为其有效数字位数的 VARCHAR2 值。 示例

3.TO_NUMBER(char [,fmt ])

将包含一个数字的 CHAR 或 VARCHAR2 数据类型的“char”转换为格式“fmt”所指定的格式,即 NUMBER 数据类型。 示例

4.TO_DATA(char,fmt)

将CHAR或VARCHAR2值转换为一指定格式的日期类型的值。 示例

5、混合函数

 

1.GREATEST(expr [,expr] ...)

返回值列表的最大值。对于字符数据比较的是 ASCII 值。 示例

2.LEAST(expr [,expr] ...)

返回值列表的最小值。对于字符数据比较的是 ASCII 值。 示例

3.NVL(value substitute)

如果值是 null 则替换值。 示例

4.USER

以 VARCHAR2 数据类型返回当前 Oracle 用户。 示例

5.VSIZE(expr)

返回 expr 的内部表达的字节数,如果 expr 是 null,则该函数返回 null。 示例

6、

AD 或 A.D.
带有或不带有句号的 AD 标记

BC 或 B.C.
带有或不带有句号的 BC 标记

D
一周中的天 (1-7)

DAY
天的名称 (Sunday - Saturday)

DD
一月中的天 (1 - 31)

DDD
一年中的天 (1 - 366)

DY
天的缩写 (Sun - Sat)

HH
一天中的小时 (1 - 12)

HH24
一天中的小时 (0 - 23)

MI
分钟 (0-59)

MM
月 (01-12)

MON
月名称的缩写

MONTH
月的名称

SS
秒 (0-59)

YYYY
4 个数字表示的年

Oracle常用的函数