oracle中常用函数大全1、数值型常用函数函数返回值样例显示ceil(n) 大于或等于数值n的最小整数select ceil(10.6) from dual; 11floor(n) 小于等于数值n的最大整数select ceil(10.6) from dual; 10mod(m,n) m除以n的余数,若n=0,则返回m select mod(7,5) from dual; 2power(m,n) m的n次方select power(3,2) from dual; 9round(n,m) 将n四舍五入,保留小数点后m位select round(1234.5678,2) from dual; 1234.57sign(n) 若n=0,则返回0,否则,n>0,则返回1,n<0,则返回-1 select sign(12) from dual; 1sqrt(n) n的平方根select sqrt(25) from dual ; 52、常用字符函数initcap(char) 把每个字符串的第一个字符换成大写select initicap('mr.ecop') from dual; Mr.Ecoplower(char) 整个字符串换成小写select lower('MR.ecop') from dual; mr.ecopreplace(char,str1,str2) 字符串中所有str1换成str2 select replace('Scott','s','Boy') from dual; Boycottsubstr(char,m,n) 取出从m字符开始的n个字符的子串select substr('ABCDEF',2,2) from dual; CDlength(char) 求字符串的长度select length('ACD') from dual; 3|| 并置运算符select 'ABCD'||'EFGH' from dual; ABCDEFGH3、日期型函数sysdate当前日期和时间select sysdate from dual;last_day本月最后一天select last_day(sysdate) from dual;add_months(d,n)当前日期d后推n个月select add_months(sysdate,2) from dual;months_between(d,n) 日期d和n相差月数select months_between(sysdate,to_date('20020812','YYYYMMDD')) from dual;next_day(d,day) d后第一周指定day的日期select next_day(sysdate,'Monday') from dual; day 格式有'Monday' 星期一'Tuesday' 星期二'wednesday' 星期三'Thursday' 星期四 'Friday' 星期五'Saturday' 星期六'Sunday' 星期日4、特殊格式的日期型函数Y或YY或YYY 年的最后一位,两位,三位select to_char(sysdate,'YYY') from dual;Q 季度,1-3月为第一季度select to_char(sysdate,'Q') from dual;MM 月份数select to_char(sysdate,'MM') from dual;RM 月份的罗马表示select to_char(sysdate,'RM') from dual; IVmonth 用9个字符表示的月份名select to_char(sysdate,'month') from dual;ww当年第几周select to_char(sysdate,'ww') from dual;w 本月第几周select to_char(sysdate,'w') from dual;DDD 当年第几天,一月一日为001 ,二月一日032 select to_char(sysdate,'DDD') from dual; DD 当月第几天select to_char(sysdate,'DD') from dual;D 周内第几天select to_char(sysdate,'D') from dual; 如sundayDY 周内第几天缩写select to_char(sysdate,'DY') from dual; 如sunhh12 12小时制小时数select to_char(sysdate,'hh12') from dual;hh24 24小时制小时数select to_char(sysdate,'hh24') from dual;Mi分钟数select to_char(sysdate,'Mi') from dual;ss秒数select to_char(sysdate,'ss') from dual; select to_char(sysdate,'YYYY-MM-DD HH:24:mi:ss') from dua;to_number() 将合法的数字字符串select to_number('88877') from dual; 88877 to_char() 将数字转换为字符串select to_char(88877) from dual; '88877'set serveroupt on;dbms_output.put_line('hello world')set heading off 由于正在创建数据文件,不需要表头set pagesize 0 不需要分页set linesize 80 设置行的最大尺寸set echo off 告诉sql plus 在执行语句时,不要回显语句set feedback off 禁止sql plus 显示有多少满足查询的行被检索到col sales format 999,999,999append 添加文本到当前行尾change/old/new/ 在当前行用新的文本代替旧的文本change/text 从当前行删除wenbdel 删除当前行input text 在当前行之后添加一行list 显示缓冲区中的所有行list n 显示缓冲区中的第n行list m n 显示m到n5、字符函数--------------------------------------------------------------------------------字符函数主要用于修改字符列。
这些函数接受字符输入,返回字符或数字值。
Oracle 提供的一些字符函数如下。
1. CONCAT (char1, char2)返回连接“char2”的“char1”。
示例 SELECT CONCAT( CONCAT(ename, ' is a '), job) FROM emp;2. INITCAP(string)将“string”的字符转成大写。
示例Select INITCAP(ename) from emp;3. LOWER (string)将“string”转成小写。
示例Select LOWER(ENAME) from emp;4. LPAD(char1,n [,char2])返回“char1”,左起由“char2”中的字符补充到“n”个字符长。
如果“char1”比“n”长,则函数返回“char1”的前“n”个字符。
示例SELECT LPAD(ename,15,'*') FROM emp;5. LTRIM(string,trim_set)从左边删除字符,此处“string”是数据库的列,或者是字面字符串,而“trim_set” 是我们要去掉的字符的集合。
示例SELECT LTRIM('abcdab','a') FROM DUAL;6. REPLACE(string, if, then)用0 或其他字符代替字符串中的字符。
“if”是字符或字符串,对于每个出现在“string”中的“if”,都用“then”的内容代替。
示例SELECT REPLACE('JACK and JUE','J','BL') FROM DUAL;7. RPAD(char1, n [,char2])返回“char1”,右侧用“char2”中的字符补充到“n”个字符长。
如果“char1”比“n” 长,则函数返回“char1”的前“n”个字符。
示例SELECT RPAD(ename,15,'*') FROM emp;8. RTRIM(string,trim_set)从右侧删除字符,此处“string”是数据库的列,或者是字面字符串,而“trim_set” 是我们要去掉的字符的集合。
示例SELECT RTRIM('abcdef', 'f') FROM DUAL;9. SOUNDEX(char)返回包含“char”的表意字符的字符串。
它允许比较英语中拼写不同而发音类似的字。
示例SELECT ename FROM empWHERE SOUNDEX(ename) = SoUNDEX('SMYTHE');10. SUBSTR(string, start [,count])返回“string”中截取的一部分。
该命令截取“string”的一个子集,从“start”位置开始,持续“count”个字符。
如果我们不指定“count”,则从“start”开始截取到“string”的尾部。
示例SELECT SUBSTR('ABCDEFGIJKLM',3,4) FROM DUAL;11. TRANSLATE(string, if, then)“if”中字符的位置,并检查“then”的相同位置,然后用该位置的字符替换“string”中的字符。