首页 > 代码库 > oracle常用数据库内置函数

oracle常用数据库内置函数

 函数  返回值            样例           显示

CEIL(n) 大于或等于数值n的最小整数  SELECT CEIL(10.6) FROM TABLE_NAME; 11

FLOOR(n) 小于等于数值n的最大整数  SELECT FLOOR (10.6) FROM TABLE_NAME; 10

MOD(m,n) m除以n的余数,若n=0,则返回m SELECT MOD (7,5) FROM TABLE_NAME l; 2

POWER(m,n) m的n次方         SELECT POWER (3,2) FROM TABLE_NAME; 9

ROUND(n,m) 将n四舍五入,保留小数点后m位  SELECT ROUND (1234.5678,2) FROM TABLE_NAME; 1234.57

SIGN(n) 若n=0,则返回0,否则,n>0,则返回1,n<0,则返回-1 SELECT SIGN (12) FROM TABLE_NAME; 1

SQRT(n) n的平方根         SELECT SQRT (25) FROM TABLE_NAME; 5

2、常用字符函数

INITICAP(char) 把每个字符串的第一个字符换成大写  SELECT INITICAP (‘mr.ecop‘) FROM TABLE_NAME; Mr.Ecop

LOWER(char) 整个字符串换成小写         SELECT LOWER (‘MR.ecop‘) FROM TABLE_NAME; mr.ecop

REPLACE(char,str1,str2) 字符串中所有str1换成str2 SELECT REPLACE (‘Scott‘,‘s‘,‘Boy‘) FROM TABLE_NAME; Boycott

SUBSTR(char,m,n) 取出从m字符开始的n个字符的子串  SELECT SUBSTR (‘ABCDEF‘,2,2) FROM TABLE_NAME;  CD

LENGTH(char) 求字符串的长度    SELECT LENGTH (‘ACD‘) FROM TABLE_NAME; 3

|| 并置运算符    SELECT ‘ABCD‘||‘EFGH‘ FROM TABLE_NAME;  ABCDEFGH

3、日期型函数

 

SYSDATE 当前日期和时间 SELECT SYSDATE FROM TABLE_NAME;

LAST_DAY  本月最后一天 SELECT LAST_DAY(SYSDATE) FROM TABLE_NAME;

ADD_MONTHS(d,n) 当前日期d后推n个月 SELECT ADD_MONTHS (SYSDATE,2) f FROM TABLE_NAME;

MONTHS_BETWEEN(d,n) 日期d和n相差月数 SELECT MONTHS_BETWEEN (SYSDATE,TO_DATE(‘20020812‘,‘YYYYMMDD‘)) FROM TABLE_NAME;

NEXT_DAY(d,day) d后第一周指定day的日期 SELECT NEXT_DAY (SYSDATE,‘Monday‘) FROM TABLE_NAME;

day 格式  有  ‘Monday‘ 星期一  ‘Tuesday‘ 星期二

‘wednesday‘  星期三   ‘Thursday‘ 星期四    ‘Friday‘ 星期五

‘Saturday‘ 星期六   ‘Sunday‘ 星期日

4、特殊格式的日期型函数

Y或YY或YYY 年的最后一位,两位,三位 SELECTTO_CHAR(SYSDATE,‘YYY‘) FROM TABLE_NAME;

Q 季度,1-3月为第一季度    SELECT TO_CHAR(SYSDATE,‘Q‘) FROM TABLE_NAME;

MM  月份数           SELECT TO_CHAR(SYSDATE,‘MM‘) FROM TABLE_NAME;

RM 月份的罗马表示 SELECT TO_CHAR(SYSDATE,‘RM‘) FROM TABLE_NAME; IV

month 用9个字符表示的月份名 SELECT TO_CHAR(SYSDATE,‘month‘) FROM TABLE_NAME;

ww 当年第几周         SELECT TO_CHAR(SYSDATE,‘ww‘) FROM TABLE_NAME l;

w 本月第几周         SELECT TO_CHAR(SYSDATE,‘w‘) FROM TABLE_NAME;

DDD 当年第几天,一月一日为001 ,二月一日032 SELECT TO_CHAR(SYSDATE,‘DDD‘) FROM TABLE_NAME;

DD 当月第几天 SELECT TO_CHAR(SYSDATE,‘DD‘) FROM TABLE_NAME;

D 周内第几天 SELECT TO_CHAR(SYSDATE,‘D‘) FROM TABLE_NAME; 如 sunday

DY 周内第几天缩写       SELECT TO_CHAR(SYSDATE,‘DY‘) FROM TABLE_NAME; 如 sun

hh12 12小时制小时数       SELECT TO_CHAR(SYSDATE,‘hh12‘) FROM TABLE_NAME;

hh24 24小时制小时数       SELECT TO_CHAR(SYSDATE,‘hh24‘) FROM TABLE_NAME;

Mi 分钟数            SELECT TO_CHAR(SYSDATE,‘Mi‘) FROM TABLE_NAME;

ss 秒数             SELECT TO_CHAR(SYSDATE,‘ss‘) FROM TABLE_NAME;

SELECT TO_CHAR(SYSDATE,‘YYYY-MM-DD HH:24:mi:ss‘) FROM TABLE_NAME;

TO_NUMBER() 将合法的数字字符串 SELECT TO_NUMBER (‘88877‘) FROM TABLE_NAME; 88877

TO_CHAR() 将数字转换为字符串  SELECT TO_CHAR(88877) FROM TABLE_NAME; ‘88877‘


 


SET SERVEROUPT ON;

DBMS_OUTPUT.PUT_LINE(‘helloworld‘)

 

SET HEADINGOFF 由于正在创建数据文件,不需要表头

SET PAGESIZE0 不需要分页

SET LINESIZE80 设置行的最大尺寸

SET ECHOOFF 告诉sqlplus 在执行语句时,不要回显语句

SET FEEDBACKOFF 禁止sqlplus 显示有多少满足查询的行被检索到

COL SALESFORMAT 999,999,999

APPEND 添加文本到当前行尾

CHANGE/OLD/NEW/在当前行用新的文本代替旧的文本

 CHANGE/TEXT 从当前行删除wenb

 DEL 删除当前行

 INPUT TEXT  在当前行之后添加一行

 LIST 显示缓冲区中的所有行

 LIST n 显示缓冲区中的第n行

LIST mn 显示m到n

5、字符函数

--------------------------------------------------------------------------------

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

1. CONCAT(char1, char2)

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

示例  SELECT CONCAT(CONCAT( COLUMN_NAME, ‘ is a ‘), job) FROM TABLE_NAME;

 

2.INITCAP(string)

将“string”的字符转成大写。

SELECT INITCAP( COLUMN_NAME) from TABLE_NAME;

3.LOWER (string)

将“string”转成小写。

SELECT LOWER( COLUMN_NAME) from TABLE_NAME;

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

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

SELECT LPAD( COLUMN_NAME,15,‘*‘) FROM TABLE_NAME;

5.LTRIM(string,trim_set)

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

SELECT LTRIM(‘abcdab‘,‘a‘) FROM TABLE_NAME;

6.REPLACE(string, if, then)

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

SELECT REPLACE(‘JACK and JUE‘,‘J‘,‘BL‘) FROMTABLE_NAME;

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

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

SELECT RPAD( COLUMN_NAME,15,‘*‘) FROM TABLE_NAME;

8.RTRIM(string,trim_set)

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

SELECT RTRIM(‘abcdef‘, ‘f‘) FROM TABLE_NAME;

9.SOUNDEX(char)

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

SELECT  COLUMN_NAME FROM TABLE_NAME WHERESOUNDEX( COLUMN_NAME) = SoUNDEX(‘SMYTHE‘);

 

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

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

SELECT SUBSTR(‘ABCDEFGIJKLM‘,3,4) FROMTABLE_NAME;

 

11.TRANSLATE(string, if, then)

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

SELECT TRANSLATE( COLUMN_NAME,‘AEIOU‘, ‘XXXXX‘) FROM TABLE_NAME;

12.UPPER(string)

返回大写的“string”。

SELECT UPPER(‘aptech computer education‘) FROMTABLE_NAME;

13.ASCII(string)

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

SELECT ASCII(‘APTECH‘) FROM TABLE_NAME;

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

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

SELECT INSTR(‘aptech is aptech‘,‘ap‘,1,2) FROMTABLE_NAME;

 

15.LENGTH(string)

返回“string”的长度值。

SELECT COLUMN_NAME, LENGTH( COLUMN_NAME) FROM TABLE_NAME;

 

oracle常用数据库内置函数