oracle 函数

字符函数

Lower(char): 将字符串转化为小写的格式

Upper(char): 将字符串转化为大写的格式

Length(char): 返回字符串的长度

Substr(char,m,n): 取字符串的子串,m表示截取起始位置,n表示截取的长度

--将所有员工的名字按小写的方式显示
select lower(ename),sal,job from emp;
--将所有员工的名字按大写的方式显示
select upper(ename),sal,job from emp;
--显示正好为5个字符的员工的姓名
select * from emp where length(ename) = 5;
--显示所有员工姓名的前三个字符
select substr(ename,1,3) from emp;

数学函数

我们最常用的有:

Round(n,[m])该函数用于执行四舍五入。如果省掉m,则四舍五入到整数;如果m是正数,则四舍五入到小数点的m位后;如果m是负数,则四舍五入到小数点的m位前。

Trunk(n,[m])该函数用于截取数字。如果省掉m,就截去小数部分,如果m是正数,就截取到小数点的m位后,如果m是负数,则截取到小数点的前m位。

Mod(m,n)取模

Floor(n)返回小于或等于n的最大整数

Ceil(n)返回大于或等于n的最小整数

对数字的处理,在财务系统或银行系统中用的最多,不同的处理方法,对财务报表有不同的结果。

日期函数

日期函数用于处理date类型的数据,默认情况下日期格式是dd-mon-yy

1)sysdate该函数返回系统时间

2)add_months(d,n)给指定日期增加n 个月份

3)last_day(d)返回指定日期所在月分的最后一天

--查找已经入职8个月多的员工
select * from emp where sysdate > add_months(hiredate,8);

--显示满10年服务年限的员工的姓名和受雇日期
select * from emp where sysdate >= add_months(hiredate,12*10);

--对于每个员工,显示其加入公司的天数
select trunc(sysdate-hiredate) days,ename from emp;

--找出各月倒数第3天受雇的所有员工
select hiredate,last_day(hiredate),ename from emp
where last_day(hiredate)-2 = hiredate;

转换函数

To_char()

--显示1980年入职的所有员工
select * from emp where to_char(hiredate,‘yyyy‘) = 1980;

--显示所有12月份入职的员工
select * from emp where to_char(hiredate,‘mm‘) = 12;

To_date()

用于将字符串转换成date类型的数据

insert into emp
values(8005,‘ChenWen‘,‘ANALYST‘,7566,to_date(‘1986-9-22‘,‘yyyy-mm-dd‘),1850.52,100,20);
时间: 2024-12-14 03:15:52

oracle 函数的相关文章

【函数】Oracle函数系列(1)--字符函数

[函数]Oracle函数系列(1)--字符函数 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 常见字符函数(lower.upper.initcap.concat.substr.length.intr.lpad.rpad.trim.chr.ascii.replace.translate)的使用 ② 判断字符串中是否含有汉字 ③ substr和instr的联合使用 ④

ORACLE函数之单行数字函数

 1.           ABS(X) 返回X的绝对值 SQL>SELECT ABS(-1) A,ABS(1) B,ABS(0) C FROM DUAL; A          B          C -------------------- ---------- 1          1          0 2.          ACOS(X) 返回X的反余弦值 SQL>SELECT ACOS(0) A,ACOS(0.5) B,ACOS(1) C FROM DUAL; A    

Oracle——函数

CREATE FUNCTION annual_income(spNAme VARCHAR2) RETURN NUMBER IS yearSal number(7,2);BEGIN  SELECT (sal+NVL(comm,0))*12 INTO yearSal FROM emp WHERE ename=spNAme;  RETURN yearSal;END;/ SQL> var income number;SQL> call annual_income('SMITH') into:incom

Oracle函数+for循环

create or replace function FilterMinganci(str in varchar) return varchar2 is filterWorld varchar2(1000); keyCount int; begin filterWorld := str; keyCount := 0; select count(1) into keyCount from dic_keyword; for aa in (select keyword from dic_keyword

java调用oracle函数

今天写了个oracle函数,但但对java如何调用不是很明白. 今天写了个,并且成功运行了. Connection conn = null; CallableStatement cstmt = null; try { conn = this.getJdbcTemplate().getDataSource().getConnection(); cstmt = conn.prepareCall("{call AUTO_TENDER_NVL(?)}"); cstmt.registerOutP

oracle函数listagg的使用说明(分组后连接字段)

关于oracle函数listagg的使用说明 工作中经常遇到客户提出这样的需求,希望在汇总合并中,能够把日期逐个枚举出来. 如图,原始数据是这样的: 客户希望能够实现这样的汇总合并: 那么通常我会使用listagg这个函数,但是好多网上都是系统的全面的介绍listagg这个函数的使用方法,看起来很费力气.在这里我简明扼要的说明一下 实现这个需求的语句是这样的: select name, listagg(ddate,' / ') within group (order by name) as dd

Oracle函数-高阶篇

下面整理了部分oracle函数-高阶篇: 1. CATSTR    举例:SELECT CATSTR(COLUMN_NAME) NAME_LIST FROM DBA_TAB_COLUMNS WHERE TRIM(TABLE_NAME) = 'T_RZ_DKDATA'  --查询出的结果在一个列中2. INSTR() 检索字符串函数:匹配则返回首次检索的位置的索引值(从1开始),值>0,否则返回值=0    举例:SELECT * FROM USER_TABLES WHERE INSTR(TABL

oracle函数获取汉字拼音的首字母

CREATE OR REPLACE FUNCTION F_TRANS_PINYIN_CAPITAL(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS V_COMPARE VARCHAR2(100); V_RETURN VARCHAR2(4000); FUNCTION F_NLSSORT(P_WORD IN VARCHAR2) RETURN VARCHAR2 AS BEGIN RETURN NLSSORT(P_WORD, 'NLS_SORT=SCHINESE_PINYI

oracle函数和存储过程有什么区别

1. 返回值的区别,函数有1个返回值,而存储过程是通过参数返回的,可以有多个或者没有 2.调用的区别,函数可以在查询语句中直接调用,而存储过程必须单独调用. 函数一般情况下是用来计算并返回一个计算结果而存储过程一般是用来完成特定的数据操作(比如修改.插入数据库表或执行某些DDL语句等等) 参数的返回情况来看: 如果返回多个参数值最好使用存储过程,如果只有一个返回值的话可以使用函数: 从调用情况来看: 如果在SQL语句(DML或SELECT)中调用的话一定是存储函数或存储的封装函数不可以是存储过程

浅谈Oracle函数返回Table集合

在调用Oracle函数时为了让PL/SQL 函数返回数据的多个行,必须通过返回一个 REF CURSOR 或一个数据集合来完成.REF CURSOR 的这种情况局限于可以从查询中选择的数据,而整个集合在可以返回前,必须进行具体化. 9i 通过引入Oracle函数中的管道化表函数纠正了后一种情况.表函数是返回整个行的集(通常作为一个集合)的函数,可以直接从 SQL 语句中进行查询,就好像它是一个真正的数据库表一样.管道化表函数与之相似,但是它像在构建时一样返回数据,而不是一次全部返回.管道化表函数