Oracle 系统函数
| 函数名称 | 返回值类型 | 说明 | 示例 | |
| 字符串函数 | ascii(str) | number | 返回str首字母的ASCII码 |
select ascii('A') from dual; --65
|
| chr(num) | char | 返回ASCII码为num的字符 |
select chr(65) from dual;--'A' |
|
| concat(p1,p2) | char | 将p2拼接在p1后边 |
select concat(10, 20) from dual; --1020 |
|
| initcap(p) | char | 将p的首字母大写,其他字母小写 |
select initcap('ABCD') from dual; --Abcd
|
|
|
instr(p1,p2[,i[,j]]) |
number | 返回p2中第i位开始到p2结束这个字符串在p1中第j次出现的位置 |
select instr('aabbabab', 'ab') from dual; --'ab'在'aabbabab'中第一次出现的位置 2
|
|
| instrb(p1,p2[,i[,j]]) | number | 与函数instr(p1,p2[,i[,j]])的作用相同,但是按字节计算 |
select instrb('我我要要我要我要', '我要') from dual; --'我要'在'我我要要我要我要'中第一次出现的位置 3
|
|
| length(p) | number | 返回参数p的长度值 |
select length('abc') from dual; --3
|
|
| lengthb(p) | number | 返回参数p的字节数 |
select lengthb('abc') from dual; --3
|
|
| lower(p) | char | 将参数p转换为小写 |
select lower('ABCD') from dual; --'abcd'
|
|
| upper(p) | char |
将参数p转换为大写 |
select upper('abcd') from dual; --'ABCD
|
|
| lpad(p1,i[,p2]) | char | 在p1的左侧填充p2,使其长度为i |
select lpad(123, 5, 0) from dual; --'00123' |
|
| ltrim(p1,p2) | char |
去掉p1左边开头连续存在的字符p2 |
select lpad(123, 5, 0) from dual; --'00123' |
|
| rpad(p1,i[,p2]) | char | 在p1的右侧填充p2,使其长度为i |
select rpad(123, 5, 0) from dual; --'12300' |
|
| rtrim(p1,p2) | char | 去掉p1右边结尾连续存在的字符p2 |
select rtrim('aabbcc', 'b') from dual; --'aabbcc'
|
|
| replace(p1,p2[,p3]) | char | 用p3替换掉p1中存在的p2 |
select replace('abcabc', 'c') from dual; --'abab'
|
|
| reverse(p) | char | 返回字符串p的倒叙排列 |
select reverse('123') from dual; --'321'
|
|
| substr(p1,i[,j]) | char | 从p1中的i位置开始,截取长度为j的字符串 |
select substr('abcdefg', 3) from dual; --'cdefg'
|
|
| substrb(p1,i[,j]) | char | 从p中的第i个字节开始,截取长度为j个字节的字符串 |
select substrb('123456', 2, 3) from dual; --'234'
|
|
| soundex(p) | char | 返回由4个字符组成的字符串,其中第一个字符为p的首字母,后3位为数字,可用来表示两个单词发音的相似度(忽略所有元音、字母 y、连写字母和字母 h) |
--两个单词发音一致 |
|
| translate(p1,p2,p3) | char |
用p3替换掉p1中存在的p2 |
select translate('abcabc', 'c', 'd') from dual; --'abdabd'
|
|
| trim(p) | char |
删除p首部和尾部的空格 |
select trim(' abc ') from dual; --'abc' | |
| 正则表达式函数 | regexp_like(colname,pattern) | 布尔 | 与like的功能相似,如果colname列的值满足正则表达式regex,则返回该行数据 |
--查询数据表emp中ename的值以A、B开头的多有数据行 |
|
regexp_instr(source,pattern [,position [,occurrence [,return_option [,match_parameter ]]]]) |
number |
与instr的功能相似 ,返回字符串中与正则表达式pattern匹配的字符的位置 |
参数说明: |
|
|
regexp_substr(source,pattern [,position [,occurrence [,match_parameter ]]]) |
char | 与substr的功能相似,截取字符串中与正则表达式pattern匹配的字符 |
select regexp_substr('abcd,aabccd,aefdacd','[^,]+') from dual;--'abcd'
|
|
|
retexp_replace(source,pattern [,replace_string [,position [,occurrence [,match_parameter ]]]]) |
char | 与replace的功能相似 ,将符合正则表达式的字符替换为新的字符 |
select regexp_replace('abCdEFGhiJK', '[a-z]') from dual; --'CEFGJK'
|
|
| 数字函数 | abs(p) | number | 返回参数的绝对值 |
select abs(123) from dual; --123 |
| cos(p) | number | 返回参数的余弦值 | ||
| sin(p) | number | 返回参数的正弦值 | ||
| tan(p) | number | 返回参数的正切值 | ||
| acos(p) | number | 反余弦函数,返回-1到1之间的数 | ||
| asin(p) | number | 反正弦函数,返回-1到1之间的数 | ||
| atan(p) | number | 反正切函数,返回p的反正切值 | ||
| cosh(p) | number | 返回参数的双曲余弦值 | ||
| sinh(p) | number | 返回参数的双曲正弦值 | ||
| tanh(p) | number | 返回参数的双曲正切值 | ||
| ceil(p) | number | 返回大于等于p的最小整数 |
select ceil(1.3) from dual; --2 |
|
| floop(p) | number | 返回小于等于p的最大整数 |
select floor(1.56) from dual; --1 |
|
| exp(p) | number | 返回e的p次幂,e=2.71828183 | select exp(2) from dual; --7.38905609893065 | |
| ln(p) | number | 返回p的自然对数,p>0 | select ln(2.71828183) from dual; --1.00000000056689 | |
| log(i,j) | number | 返回以i为底j的对数 | select log(10, 100) from dual; --2 | |
| mod(i,j) | number | 返回i除以j的余数 |
select mod(10, 3) from dual; --1 |
|
| power(i,j) | number | 返回i的j次方 |
select power(10, 2) from dual; --100 |
|
| round(i[,j]) | number | 返回对i进行四舍五入后的值,j是保留小数位(可以是0、整数、负数) |
select round(123.456) from dual; --123 |
|
| sign(p) | number | p=0,返回0;p>0,返回1;p<0,返回-1 |
select sign(0) from dual; --0 |
|
| sqrt(p) | number | 返回参数的平方根 |
select sqrt(100) from dual; --10 |
|
| trunc(i,j) | number | 返回i保留j位小数的值,不进行四舍五入(j可以是0、整数、负数) |
select trunc(123.456) from dual; --123 |
|
| 转换函数 | convert(p,ds[,ss]) | char | 将参数从ss字符集转换为ds字符集 |
select convert('你好', 'utf8', 'zhs16gbk') from dual; --'浣犲ソ'
|
| hextoraw(p) | char | 将16进制的参数转换为raw类型 | select hextoraw('abcdef') from dual; --'ABCDEF' | |
| rawtohex(p) | char | 将raw类型的参数转换为16进制 |
select rawtohex('AA') from dual; --'4141'
|
|
| rawidtochar(p) | char | 将rawid类型的参数转换为char类型 | ||
| cast | 不定 | 将某种类型转换为另一种类型 |
select cast('123' as number(6,2)) from dual; --123.00
|
|
| to_char(p[,fmt]) | char | 将参数p转换为char类型,如果p为date类型,则可以将其转换为指定格式的字符 |
select to_char(123) from dual; --'123' |
|
| to_date(s,fmt) | date | 将字符转换为指定格式的date类型 |
select to_date('2017-09-06', 'YYYY-MM-DD') from dual; --'2017.9.6
|
|
| to_multi_byte(p) | char | 将单字节字符转换为双字节字符 |
select lengthb('a') from dual; --1
|
|
| to_number(p) | number | 将参数转换为数字 | select to_number('123') from dual; --123 | |
| to_single_byte() | char | 将双字节字符转换为单字节字符 |
select lengthb('a') from dual; --1
|
|
| 日期函数 | add_months(d,i) | date | 获取在日期d上加i个月后的日期 |
select add_months(to_date('2017-09-06', 'YYYY-MM-DD'), 2) from dual; --2017.11.6
|
| last_day(d) | date | 获取日期d中月份最后一天的日期 |
select last_day(to_date('2017-02-06', 'YYYY-MM-DD')) from dual; --2017.2.28
|
|
| months_between(d1,d2) | number |
获取日期d1、d2相差几个月 |
select months_between(to_date('2017-02-06', 'YYYY-MM-DD'), to_date('2017-09-06', 'YYYY-MM-DD')) from dual;-- -7
|
|
| new_time(d,tz1,tz2) | date | 将日期d从tz1时区转换为tz2时区 | select new_time(sysdate, 'GMT', 'CST') from dual; --2017.9.6 16:38:47 | |
| next_day(d,w) | date | 获取日期d后的下一个星期w(1-7对应周日-周六) |
select next_day(to_date('2017-09-06'), 4) from dual; --'2017.9.13'
|
|
| round(d,fmt) | date | 返回日期d按照指定格式舍入后日期的第一天 |
select round(to_date('2017-05-06', 'YYYY-MM-DD'), 'YYYY') from dual; --'2017.1.1'
|
|
| trunc(d,fmt) | date | 返回日期d按照指定格式截取后日期的第一天 |
select trunc(to_date('2017-05-06', 'YYYY-MM-DD'), 'YYYY') from dual; --'2017.1.1'
|
|
| sysdate | date | 获取当前系统时间 |
select sysdate from dual; --'2017-09-06 22:13:14' |
|
| extract | char | 截取日期中的指定字段 |
-- 获取日期中的年份 |
|
| 聚合函数 | avg(col) | number | 返回col列的平均值 |
select avg(sal) from emp; |
| count(col|*) | number | 返回列col的行数,*表示所有行 |
select count(ename) from emp; |
|
| max(col) | 不定 | 返回列col中的最大值 |
select max(sal) from emp; |
|
| min(col) | 不定 | 返回列col中的最小值 |
select min(sal) from emp; |
|
| stddev(col) | number | 返回列col的标准差,标准差是方差的平方根 |
select stddev(sal) from emp; |
|
| sum(col) | number | 返回列col的总和 |
select sum(sal) from emp; |
|
| variance(col) | number | 返回列col的统计方差 |
select variance(sal) from emp; |
|
| wm_concat(col) | char | 返回列col的合并行,用逗号分隔 |
--获取每个部门中的员工姓名 |
|
| nvl(col,p) | char | 如果col的值为空,就用p代替 |
select nvl(null,'HH') from dual; --'HH' |
|
| decode(col,p1,s1,p2,s2...sn) | char | 为指定列的每个值指定一个对应的新值,如果没有指定 |
select e.*,decode(deptno,10,'1班',20,'2班',30,'3班',40,'4班','没有对应班级') from emp e; |
|
Oracle 系统函数的更多相关文章
- oracle系统函数(日期函数)
oracle系统函数(日期函数) 调用日期函数时,首先要明确两个概念,时间戳和日期是不同的,日期中包括年月日但不包括小时分钟秒,时间戳包括年月日小时分钟秒.在oracle中,一般情况下,函数中包含da ...
- Oracle的学习三:java连接Oracle、事务、内置函数、日期函数、转换函数、系统函数
1.java程序操作Oracle java连接Oracle JDBC_ODBC桥连接 1.加载驱动: Class.forName("sun.jdbc.odbc.JdbcodbcDriver& ...
- .Net程序员学用Oracle系列(9):系统函数(上)
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.字符函数 1.1.字符函数简介 1.2.语法说明及案例 2.数字函数 2.1.数字函数简介 2.2.语法说明及案例 3.日期 ...
- .Net程序员学用Oracle系列(11):系统函数(下)
1.聚合函数 1.1.COUNT 函数 1.2.SUM 函数 1.3.MAX 函数 1.4.MIN 函数 1.5.AVG 函数 2.ROWNUM 函数 2.1.ROWNUM 函数简介 2.2.利用 R ...
- oracle常用系统函数
一.字符类函数 字符类函数是专门用于字符处理的函数,处理的对象可以是字符或者字符串常量,也可以是字符类型的列. 1.ASCII(c)和CHR(i) ASCII(c)函数用于返回一个字符的ASCII码, ...
- 分享:Oracle 系统变量函数用法说明
在Oracle数据库中,Oracle系统变量函数是经常会使用到的函数,分享下Oracle系统变量函数的用法. Oracle函数多种多样,系统变量函数就是其中之一,介绍三种最常见的系统变量函数. Ora ...
- Oracle SQL常用内置系统函数总结
Oracle数据库 内置系统函数主要分为以下类别:数学函数.字符串函数.日期函数.转换函数.聚合函数.分析聚合函数 一.数学函数 ------------返回数字 abs(n):返回数字 ...
- Oracle中常用的系统函数
本文主要来梳理下Oracle中的常用的系统函数,掌握这些函数的使用,对于我们编写SQL语句或PL/SQL代码时很有帮助,所以这也是必须掌握的知识点. 本文主要包括以下函数介绍:1.字符串函数2. 数值 ...
- 【Oracle】Oracle中常用的系统函数
Oracle SQL 提供了用于执行特定操作的专用函数.这些函数大大增强了 SQL 语言的功能.函数可以接受零个或者多个输入参数,并返回一个输出结果.在Oracle还可以自定义函数,关于更多信息可以查 ...
随机推荐
- entfrm开源免费模块化无代码开发平台,开放生态为您创造更多的价值
entfrm开发平台6大特性,赋能快速开发,为您创造更多的价值: 1. 模块化 丰富的模块稳定的框架 后台极易上手 目前已包括系统管理.任务调度.运维监控.开发工具.消息系统.工作流引擎.内容管理等模 ...
- hive 启动不成功,报错:hive 启动报 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/mapred/MRVersi
1. 现象:在任意位置输入 hive,准备启动 hive 时,报错: Exception in thread "main" java.lang.NoClassDefFoundErr ...
- shell获取目录下(包括子目录)所有文件名、路径、文件大小
一例shell脚本:取得目录下(包括子目录)所有文件名.路径与文件大小. 代码,shell脚本: lsdir.sh #!/bin/bash # #site: www.jquerycn.cn funct ...
- 【Spring Framework】Spring注解设置Bean的初始化、销毁方法的方式
bean的生命周期:创建---初始化---销毁. Spring中声明的Bean的初始化和销毁方法有3种方式: @Bean的注解的initMethod.DestroyMethod属性 bean实现Ini ...
- C++易错小结
C++ 11 vector 遍历方法小结 方法零,对C念念不舍的童鞋们习惯的写法: void ShowVec(const vector<int>& valList) { int c ...
- Linux下部署Java项目(jetty作为容器)常用脚本命令
startup.sh #!/bin/bash echo $(basename $(pwd)) "jetty started" cd jetty nohup java -Xmx8g ...
- Java SPI机制,你了解过吗?
Life moves pretty fast,if you don't stop and look around once in a while,you will miss it 为什么需要SPI? ...
- MySQL安装详细教程(数据库免安装版)
MySQL安装详细教程(数据库免安装版)mysql-5.7.33-winx64.zip 一.软件下载 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产 ...
- 30个类手写Spring核心原理之依赖注入功能(3)
本文节选自<Spring 5核心原理> 在之前的源码分析中我们已经了解到,依赖注入(DI)的入口是getBean()方法,前面的IoC手写部分基本流程已通.先在GPApplicationC ...
- [BUUCTF]REVERSE——reverse1
reverse1 附件 首先检查一下附件程序,64位,没有壳 64位ida载入,shift+f12检索程序里的字符串 我们得到了this is flag的提示,而且还看见了一个类似flag的字符串{h ...