Oracle中的函数详解

目录
  • 一、数值函数
  • 二、字符函数
  • 三、日期时间函数
  • 四、转换函数
  • 五、辅助函数
  • 六、聚合函数
  • 七、分析函数

一、数值函数

1、mod(n1,n2):n1除以n2的余数。

如果n2为0,则返回n1。

select mod(23,8),mod(24,8) from dual;--返回:7,0

2、power(n1,n2):返回数字n1的n2次幂; 
exp(y):返回e的y次幂。(e为数学常量); 
log(x,y):返回以x为底的y的对数; 
ln(y):返回e为底的自然对数。

select power(2.5,2),power(1.5,0),power(20,-1) from dual;

3、sqrt(n):平方根。

select sqrt(64),sqrt(10) from dual;--返回:8 , 3.16227766

4、ceil(n):返回大于等于n的最小整数。;

floor(n):返回小于等于n的最大整数。

select ceil(3.1),ceil(2.8+1.3),ceil(0) from dual;--返回4,5,0

5、sign(x):返回x的正负值

若为正值返回1,负值返回-1,0返回0。

select sign(100),sign(-100),sign(0) from dual;

6、trunc(n[,len]):n截取到小数点len位。

len默认为0。len>0,截取到小数点右len位。len<0,截取到小数点左len位。

select trunc(5555.66666,2.1),trunc(5555.66666,-2.6),trunc(5555.033333)  from dual;--返回:5555.66  5500   5555

7、round(n[,len]):n四舍五入到小数点len位,规则同trunc。

select round(5555.6666,2.1),round(5555.6666,-2.6),round(5555.6666) from dual;--返回:   5555.67  ,5600 ,5556

8、sys.dbms.random.value():产生0-1之间的随机数。

DBMS_RANDOM.VALUE()是随机产生( 0,1 )之间的数。 
DBMS_RANDOM.VALUE(n1,n2):产生n1-n2之间的随机数。

trunc(dbms_random.value(10,100))    //80:生成10-100之间的随机数。

二、字符函数

1:lower(c1):返回字符串,并将所有的字符小写

SELECT LOWER('AbcDedf Gbad') FROM DUAL;

2:upper(c1):返回字符串,并将所有的字符大写

SELECT UPPER('abcdEf') FROM DUAL;

3: initcap(c1):返回字符串并将字符串的第一个字母变为大写

全部单词的首字母大写

SELECT INITCAP('your didn''t try your best') FROM DUAL;

4: initcap(c1,n[,c2]):在列的左边填充字符

  • C1 字符串
  • n 追加后字符总长度
  • c2 追加字符串,默认为空格
SELECT LPAD('WELCOME', 20, 'HELLO') FROM DUAL;

5: rpad(c1,n[,c2]):在列的右边填充字符

注意长度值并不是粘贴字符的长度,而是整个字符串的长度,如果长度小于原始字符串

--SELECT RPAD('HELLO', 4, '*') FROM DUAL; 的值为HELL
SELECT RPAD('HELLO', 10, '*') FROM DUAL;
SELECT RPAD('HELLO', 10, 'E') FROM DUAL;

6: ltrim(X,[TRIM_STRING]):删除左边出现的字符串。

默认为空字符串

SELECT LTRIM('  hello world!') FROM DUAL;
SELECT LTRIM('hello, world', 'hello') FROM DUAL;

7: rtrim(X, [TRIM_STRING]):删除右边出现的字符串

TRIM_STRING,默认为空字符串。

SELECT RTRIM('hello world!    ') FROM DUAL;

8: trim('s' from 'string'):删除两边出现的字符串

LEADING 剪掉前面的字符 
TRAILING 剪掉后面的字符 
如果不指定,默认为空格符

SELECT TRIM('Y' FROM 'YOU') FROM DUAL;

9: instr(C1,C2,I,J):在一个字符串中搜索指定的字符,返回发现指定的字符的位置;

  • C1 被搜索的字符串
  • C2 希望搜索的字符串
  • I 搜索的开始位置,默认为1
  • J 出现的位置,默认为1
SELECT INSTR('HELLO WORLD! WELCOME', 'WORLD', 1)  FROM DUAL;

10:substr(string,start,count):取子字符串,从start开始,取count个

SELECT SUBSTR('you are right!, come on', 3, 30) FROM DUAL;

11:replace('string','s1','s2'):替换

  • string 希望被替换的字符或变量
  • s1 被替换的字符串
  • s2 要替换的字符串
SELECT REPLACE('HE LOVE YOU', 'HE' ,'I') FROM DUAL;

12:translate(c1,c2,c3):将指定字符替换为新字符

  • c1 希望被替换的字符或变量
  • c2 查询原始的字符集
  • c3: 替换新的字符集,将c2对应顺序字符,替换为c3对应顺序字符
select TRANSLATE('he love you','he','i'),
TRANSLATE('重庆的人','重庆的','上海男'),
TRANSLATE('重庆的人','重庆的重庆','北京男士们'),
TRANSLATE('重庆的人','重庆的重庆','1北京男士们'),
TRANSLATE('重庆的人','1重庆的重庆','北京男士们') from dual;
--i love you,上海男人,北京男人,1北京人,京男士人

13: length(c1):返回字符串的长度;

返回表某条数据某个列实际长度,如果该表没有数据,返回0

SELECT LENGTH(TYPE_NAME) FROM USER_TYPES

14:ascii(x1):返回字符串的ASCII值

SELECT ASCII('A') FROM DUAL;
SELECT ASCII('a') FROM DUAL;

15: chr(n1):返回整数所对应的ASCII字符

SELECT CHR('65') FROM DUAL;
SELECT CHR(400) FROM DUAL;  --如果超出ACII值,则返回空

16: concat(c1,c2):连接字符串A和字符串B

SELECT CONCAT('您好', '欢迎来到ORACLE世界') AS TEXT FROM DUAL;
--如果要连接表里面的两个字段可以用||
SELECT TYPECODE || '____' || TYPE_NAME AS "TYPE" FROM USER_TYPES;

三、日期时间函数

1:sysdate、current_date:系统的当前日期

(1)日期加上范围日期,得到新日期

  • data+n,加减n天。(n为负数,表示减去)
  • date+n/24:加减n小时
  • date+n/24/60:加减n分钟
  • date+n/24/60/3600:加减n秒

(2)date1-date2:两日期相差的天数:

(date1-date2)*24*3600:两日期相差的秒数

SELECT SYSDATE FROM DUAL;

2:add_months(date,n1):增加或减去月份

SELECT TO_CHAR(ADD_MONTHS(TO_DATE('20080818','YYYYMMDD'),2), 'YYYY-MM-DD') FROM DUAL;
SELECT TO_CHAR(ADD_MONTHS(SYSDATE, -1), 'YYYY-MM-DD') FROM DUAL

3: months_between(date2,date1):给出date2-date1的月份

SELECT MONTHS_BETWEEN(TO_DATE('2011-05-03', 'YYYY-MM-DD'), TO_DATE('2011-01-23', 'YYYY-MM-DD')) FROM DUAL;
SELECT MONTHS_BETWEEN('19-12月-1999','19-3月-1999') mon_between FROM DUAL;
--SELECT MONTHS_BETWEEN('2011-1月-23', '2011-9月-1') FROM DUAL;  文字与格式字符串不匹配

4: last_day(date):返回日期的最后一天

SELECT LAST_DAY(SYSDATE) FROM DUAL;
SELECT LAST_DAY(ADD_MONTHS(SYSDATE, -2)) FROM DUAL;

5:next_day(date[,fmt]):返回日期d1在下周,星期几(参数c1)的日期

星期日 = 1 星期一 = 2 星期二 = 3 星期三 = 4 星期四 = 5 星期五 = 6 星期六 = 7

SELECT NEXT_DAY(SYSDATE, 2) FROM DUAL;--下周星期一,

6、round(date[,fmt]):日期时间四舍五入结果。

fmt默认是day.

7: trunc(date[,fmt]):TRUNC函数为指定元素而截去的日期值。

TRUNC(TO_DATE('24-Nov-1999 08:00 pm'),'dd-mon-yyyy hh:mi am') ='24-Nov-1999 12:00:00 am'
TRUNC(TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am'),'hh') ='24-Nov-1999 08:00:00 am'

8:extract(c1 from date) :找出日期或间隔值的字段值

SELECT EXTRACT(MONTH FROM SYSDATE) "MONTH" FROM DUAL;
SELECT EXTRACT(DAY FROM SYSDATE)  AS "DAY" FROM DUAL;
SELECT EXTRACT(YEAR FROM SYSDATE) AS "YEAR" FROM DUAL;

9:new_time(date,'this','that'):给出在this时区=other时区的日期和时间

SELECT TO_CHAR(SYSDATE, 'YYYY.MM.DD HH24:MI:SS') BeiJing_Time,TO_CHAR(NEW_TIME(SYSDATE, 'PDT', 'GMT'), 'YYYY.MM.DD HH24:MI:SS') LOS_ANGELS FROM DUAL;

简写 时区

  • AST OR ADT 大西洋标准时间
  • HST OR HDT 阿拉斯加—夏威夷时间
  • BST OR BDT 英国夏令时
  • MST OR MDT 美国山区时间
  • CST OR CDT 美国中央时区
  • NST 新大陆标准时间
  • EST OR EDT 美国东部时间
  • PST OR PDT 太平洋标准时间
  • GMT 格伦威治标准时间
  • YST OR YDT Yukon标准时间

10: dbtimezone() :返回时区

SELECT DBTIMEZONE FROM DUAL;

11: sessiontimezone:返回会话时区

其中DBTIMEZONE是数据库的,session是针对当前会话的,因为时区在会话级可以改变

SELECT SESSIONTIMEZONE FROM DUAL;
ALTER SESSION SET TIME_ZONE = '8:00';
SELECT SESSIONTIMEZONE FROM DUAL;

12、常用时间查询:

----  上月最后一天
SELECT TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE, -1)), 'YYYY/MM/DD') FROM DUAL;
----: 上各月的今天
SELECT TO_CHAR(ADD_MONTHS(SYSDATE, -1), 'YYYY-MM-DD') FROM DUAL;
---- 上个月第一天
SELECT TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE)+1,-2),'YYYY-MM-DD') FirstDay FROM DUAL;
---  要找到某月中所有周五的具体日期
SELECT TO_CHAR(T.D, 'YY-MM-DD')
FROM (SELECT TRUNC(SYSDATE, 'MM') + ROWNUM -1 AS D FROM DBA_OBJECTS WHERE ROWNUM < 32) T
WHERE TO_CHAR(T.D, 'MM') = TO_CHAR(SYSDATE, 'MM') AND TRIM(TO_CHAR(T.D, 'DAY')) = '星期五'

四、转换函数

1: to_char(date,'format') :把对应的数据转换为字符串类型

TO_CHAR的fmt:格式字符串,不分大小写。

select to_char(sysdate,'yyyy-mm-dd hh24:mi;ss') from dual
  • Y或YY或YYY 年的最后一位,两位或三位
  • SYEAR或YEAR: SYEAR使公元前的年份前加一负号 --TWENTY ELEVEN
  • Q: 季度,1~3月为第一季度 -- 2表示第二季度
  • MM: 月份数 --04表示4月
  • RM: 月份的罗马表示 --IV表示4月
  • MON: 月份 --4月
  • Month: 用9个字符长度表示的月份名 -- 4月
  • WW: 当年第几周 -- 24表示2002年6月13日为第24周
  • W: 本月第几周 -- 2011年04月26日为第4周
  • DDD: 当年第几天. 1月1日为001,2月1日为032
  • DD: 当月第几天
  • D: 周内第几天
  • DY: 周内第几天缩写
  • HH或HH12: 12进制小时数
  • HH24: 24小时制
  • MI: 分钟数(0~59) :提示注意不要将MM格式用于分钟(分钟应该使用MI)。MM是用于月份的格式,将它用于分钟也能工作,但结果是错误的。
  • SS: 秒数(0~59)
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;

2: to_char(n,'format'):把对应的数字为字符串类型

FORMAT格式符:

  • 9:带有指定位数的值
  • 0:前导零的值
  • . (句点):小数点
  • , (逗号):分组(千)分隔符
  • PR:尖括号内负值
  • S:带负号的负值(使用本地化)
  • L:货币符号(使用本地化)
  • D:小数点(使用本地化)
  • G:分组分隔符(使用本地化)
  • MI:在指明的位置的负号(如果数字 < 0)
  • PL:在指明的位置的正号(如果数字 > 0)
  • SG:在指明的位置的正/负号
  • RN:罗马数字(输入在 1 和 3999 之间)
  • TH or th:转换成序数
SELECT TO_CHAR(122323.45, '$99999999.99') FROM DUAL;

3: to_date(string,'format'):将字符串转化为日期

主要用于比较和修改日期。

SELECT TO_DATE('2011/03/24', 'YYYY-MM-DD') FROM DUAL;

4: to_number:将给出的字符转换为数字

SELECT TO_NUMBER('¥2008.00','L9999D99') AS Year FROM DUAL;

五、辅助函数

1、decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值):根据条件返回相应值

值1……n 不能为条件表达式,这种情况只能用case when then end解决。

select decode(xqn,1,'星期一',2,'星期二',3,'星期三','星期三以后') 星期FROM xqb

2、greatest(exp1,exp2,exp3,……,expn):返回表达式列表中值最大的一个。 ; least(exp1,exp2,exp3,……,expn):返回表达式列表中值最小的一个。

如果表达式类型不同,会隐含转换为第一个表达式类型。

SELECT greatest(10,32,'123','2006') FROM dual;

3、nullif (expr1, expr2):expr1和expr2相等返回NULL,不相等返回expr1。

SELECT NULLIF( 'a', 'b' ) ;--返回值 a
SELECT NULLIF( 'a', 'a');--返回 NULL

实际应用:

--添加函数查询结果,要求(将日期类型默认'0001/1/1',改成null,不相等,返回本身日期)--
select NULLIF(RECEIVEDATE,TO_DATE('0001/1/1','yyyy-mm-dd hh24:mi:ss')) 收货日期,NAME 单据名称 from tab

4、nvl (expr1, expr2):若expr1为NULL,返回expr2;expr1不为NULL,返回expr1。

select NVL(null,'未知') SexType from dual;--expr1为空,返回expr2,结果:'未知'
select NVL('1','2') SexType from dual;--expr1不为空,返回expr1, 结果:1

实际应用:

--加函数时情况,要求(field 为null,返回0 ;field 不为null,返回本身
select NVL(UseFlag,'0') 使用标志,NAME 单据名称 from tab

5、nvl2(expr1, expr2, expr3) :expr1不为NULL,返回expr2;expr2为NULL,返回expr3。

expr2和expr3类型不同的话,expr3会转换为expr2的类型

select NVL2(0,1,2) from dual;--不为null时,返回expr2 ,结果:1
select NVL2(null,1,2) from dual;--为null时,返回expr3 ,结果:2

实际应用:

--应用到实际查询中,要求(field 为null,返回0; field 不为null,返回本身)
 select NVL2(UseFlag,UseFlag,'0') 使用标志,A.NAME 单据名称 from tab

6、coalesce(c1, c2, ...,cn):返回列表中第一个非空的表达式,如果所有表达式都为空值则返回1个空值。

select COALESCE(null,3*5,44) hz from dual; --返回15

7、sys_context('USERENV',c2):返回系统'USERENV'变量中c2对应的的值。

SYS_CONTEXT('USERENV','LANGUAGE') language,

8、sys_connect_by_path(column_name,'分隔符'):把一个父节点下的所有子节点通过某个字符进行区分,然后连接在一个列中显示

详见 Oracle递归查询connect by

  • 第一个参数是形成树形式的字段,第二个参数是父级和其子级分隔显示用的分隔符
  • 伪列CONNECT_BY_ROOT,CONNECT_BY_LEAF,CONNECT_BY_ISCYCLE

结构化查询:START WITH ...CONNNECT BY PRIOR基本语法是:

SELECT ...FROM
WHERE (过滤返回记录,仅过滤被限定节点,其根节点和子节点均不受影响)
START WITH (根节点,可以指定多个节点)
CONNECT BY PRIOR= (连接条件,PRIOR置于等号前,则从根节点到叶节点开始检索;置于等号后,则从叶节点到根节点开始检索)

该查询访问路径如下:从根节点开始,向下扫描子节点,该子节点已被访问则转向其最左侧未被访问的子节点,否则判断该节点是否为根节点,是则访问完毕,否则返回父节点重新执行判断。

SELECT ename   FROM scott.emp    START WITH ename = 'KING'    CONNECT BY PRIOR empno = mgr;

--得到结果为:

KING 
JONES 
SCOTT 
ADAMS 
FORD 
SMITH 
BLAKE 
ALLEN 
WARD 
MARTIN 
TURNER 
JAMES

SELECT SYS_CONNECT_BY_PATH(ename, </'>') "Path"    FROM scott.emp    START WITH ename = 'KING'    CONNECT BY PRIOR empno = mgr;

--得到结果为:

KING 
KING>JONES 
KING>JONES>SCOTT 
KING>JONES>SCOTT>ADAMS 
KING>JONES>FORD 
KING>JONES>FORD>SMITH 
KING>BLAKE 
KING>BLAKE>ALLEN 
KING>BLAKE>WARD 
KING>BLAKE>MARTIN 
KING>BLAKE>TURNER 
KING>BLAKE>JAMES 
KING>CLARK 
KING>CLARK>MILLER

六、聚合函数

  • AVG(DISTINCT|ALL):平均值,DISTINCT表示对不同的值求平均值,重复值的列的只取一次。
SELECT AVG(DISTINCT SAL) FROM SCOTT.EMP;
  • MAX(DISTINCT|ALL):最大值
  • MIN(DISTINCT|ALL):最小值
  • SUM(DISTINCT|ALL):求和
  • COUNT(DISTINCT|ALL):求记录数
  • wmsys.wm_concat(DISTINCT|ALL):合并列。 
    将一列的多行记录合并到一列,用逗号隔开。例如表的有两个字段,要按airport_id合并成两行可用sql语句
select airport_id,   wmsys.wm_concat(distinct  account) from AIRPORT_MODIFY group by airport_id

七、分析函数

见专题:Oracle分析函数

到此这篇关于Oracle函数的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • oracle常用分析函数与聚合函数的用法

    今天是2019年第一天,在此祝大家新年快乐,梦想还在路上,让我们继续加油! 应之前的计划,今天完成这篇记录,也借此记录自己的成长. 一.几个排名函数的语法和用法: rank ( )  over ([partition by col]  order by col ) dense_rank ( )  over ([partition by col] order  by col ) rownumber ( )  over ( [partition by col] order by col ) rank

  • Oracle数据库中通用的函数实例详解

    目录 一. Scott用户下的表结构 1.如果自己没有Scoot表就可以自己创建一个 二.单行函数 1.字符函数 2.数值函数 三.多行函数(聚合函数) 1.统计记录数 2.最小值查询 min() 3.最大值查询 max() 4.平均值查询 avg() 5.求和函数 四.分组统计 总结 一. Scott用户下的表结构 SCOTT.是在Oracle数据库中,一个示例用户的名称.其作用是为初学者提供一些简单的应用示例,不过其默认是锁定状态,在安装时,根据用户需要,在“数据库配置助手”界面完成后,弹出

  • Oracle数据库分析函数用法

    目录 1.什么是窗口函数? 2.窗口函数--开窗 3.一些分析函数的使用方法 4.OVER()参数--分组函数 5.OVER()参数--排序函数 1.什么是窗口函数? 窗口函数也属于分析函数.Oracle从8.1.6开始提供窗口函数,窗口函数用于计算基于组的某种聚合值, 窗口函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化. 与聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行 基本语法: ‹分析函数› over (partition by ‹

  • oracle中110个常用函数介绍

    1. ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual; A A ZERO SPACE --------- --------- --------- --------- 65 97 48 32 2. CHR 给出整数,返回对应的字符; SQL> select chr(54740) zhao,chr(65) chr65 from dual; ZH C --

  • oracle中的一些常用函数及示例

    前言 学习oracle也有一段时间了,发现oracle中的函数好多,对于做后台的程序猿来说,大把大把的时间还要学习很多其他的新东西,再把这些函数也都记住是不太现实的,所以总结了一下oracle中的一些常用函数及示例,一是为了和大家分享,二是可以在以后工作中忘记了随时查阅.废话不多说,下面直接上函数. 一.单行函数 只处理单个行,并且为每行返回一个结果. 1.字符函数 (1)concat(str1,str2)字符串拼接函数 select concat('Hello ','World') from

  • ORACLE 常用函数总结(80个)第1/2页

    1. ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual; A A ZERO SPACE --------- --------- --------- --------- 65 97 48 32 2. CHR 给出整数,返回对应的字符; SQL> select chr(54740) zhao,chr(65) chr65 from dual; ZH C --

  • 详细整理Oracle中常用函数

    目录 一.字符串函数 二.数字函数 1.ROUND(X[,Y]),四舍五入. 2.TRUNC(x[,y]),直接截取,不四舍五入. 三.日期函数 1.ADD_MONTHS(d,n),在某一个日期 d 上,加上指定的月数 n,返回计算后的新日期. 2.LAST_DAY(d),返回指定日期当月的最后一天. 3.ROUND(d[,fmt]),返回一个以 fmt 为格式的四舍五入日期值, d 是日期, fmt 是格式 4.EXTRACT(fmt FROM d),提取日期中的特定部分. 四.转换函数 1.

  • Oracle中的分析函数汇总

    一.概述 OLAP的系统(即Online Aanalyse Process)一般用于系统决策使用.通常和数据仓库.数据分析.数据挖掘等概念联系在一起.这些系统的特点是数据量大,对实时响应的要求不高或者根本不关注这方面的要求,以查询.统计操作为主. 我们来看看下面的几个典型例子: ①查找上一年度各个销售区域排名前10的员工 ②按区域查找上一年度订单总额占区域订单总额20%以上的客户 ③查找上一年度销售最差的部门所在的区域 ④查找上一年度销售最好和最差的产品 我们看看上面的几个例子就可以感觉到这几个

  • Oracle中的函数详解

    目录 一.数值函数 二.字符函数 三.日期时间函数 四.转换函数 五.辅助函数 六.聚合函数 七.分析函数 一.数值函数 1.mod(n1,n2):n1除以n2的余数. 如果n2为0,则返回n1. select mod(23,8),mod(24,8) from dual;--返回:7,0 2.power(n1,n2):返回数字n1的n2次幂; exp(y):返回e的y次幂.(e为数学常量); log(x,y):返回以x为底的y的对数: ln(y):返回e为底的自然对数. select power

  • ASP 中 DateDiff 函数详解 主要实现两日期加减操作

    ASP 中 DateDiff 函数详解DateDiff 函数 描述  返回两个日期之间的时间间隔.  语法  DateDiff(interval, date1, date2 [,firstdayofweek][, firstweekofyear]])  DateDiff 函数的语法有以下参数: 参数 描述  interval 必选.字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔.有关数值,请参阅"设置"部分.  date1, date2 必选.日期表达式.用于计

  • C++ 中回调函数详解及简单实例

    C++ 中回调函数详解及简单实例 回调函数调用关系图 对于第一种情况,主程序可以从执行到回调函数,也可以不执行回调函数,关键看宿主函数是否调用了回调函数. 对于第二种情况,主程序可以从执行到回调函数,也可以不执行回调函数,关键看宿主函数是否调用了回调函数.主程序不知道宿主函数什么时候调用回调函数,因为调用函数启动了线程,这样,主程序就不必关心宿主函数什么时候调用回调函数了,主程序可以释放出来做自己的事了. 代码示例 #include <stdio.h> typedef void(*lpFunc

  • C/C++ 中memset() 函数详解及其作用介绍

    memset 函数是内存赋值函数,用来给某一块内存空间进行赋值的: 包含在<string.h>头文件中,可以用它对一片内存空间逐字节进行初始化: 原型为 : void *memset(void *s, int v, size_t n); 这里s可以是数组名,也可以是指向某一内在空间的指针: v为要填充的值: n为要填充的字节数: 例子: struct data { char num[100]; char name[100]; int n; }; struct data a, b[10]; me

  • Oracle中NEXTVAL案例详解

    1.什么是sequence?其作用是什么?         在Oracle数据库中,什么是序列呢?其中的作用是什么呢?其实sequence是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字).其主要的用途是生成表的主键值,可以在插入语句中引用,在插入之前,获取序列号nextval值,然后进行插入.也可以通过查询检查当前值,或使序列增至下一个值. 2.如何定义一个sequence? create sequence INR_REQUIRMENT_SQUENCE INCRE

  • Python中reduce函数详解

    目录 1 reduce用法 2 reduce与for循环性能对比 reduce函数原本在python2中也是个内置函数,不过在python3中被移到functools模块中. reduce函数先从列表(或序列)中取出2个元素执行指定函数,并将输出结果与第3个元素传入函数,输出结果再与第4个元素传入函数,…,以此类推,直到列表每个元素都取完. 1 reduce用法 对列表元素求和,如果不用reduce,我们一般常用的方法是for循环: def sum_func(arr):     if len(a

  • Oracle中触发器示例详解

    前言 在ORACLE系统里,触发器类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块. 触发器类型 触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来启动运行.即触发器是当某个事件发生时自动地隐式运行.并且,触发器不能接收参数.所以运行触发器就叫触发或点火(firing).ORACLE事件指的是对数据库的表进行的INSERT.UPDATE及DELETE操作或对视图进行类似的操作.ORACLE将触发器的功能扩展到了触

  • Django中Middleware中的函数详解

    一个middleware的例子 import time from django.urls import reverse from django.utils.deprecation import MiddlewareMixin class TimeItMiddleware(MiddlewareMixin): def process_request(self, request): return def process_view(self, request, func, *args, **kwargs

  • python如何调用php文件中的函数详解

    前言 python调用php代码实现思路:php文件可通过在terminal中使用php命令行进行调用,因此可使用python开启子进程执行命令行代码.函数所需的参数可通过命令行传递. 测试环境 1.操作系统:macos10.13.2 2.php版本:PHP 7.1.7(mac自带) 3.python版本:python3.6.0 4.python库:subprocess 调用php函数 php命令行调用php文件中的函数 php文件:test_hello.php <?php function h

  • C/C++中虚函数详解及其作用介绍

    目录 概述 使用方法 关联 静态关联 动态关联 案例1 未使用虚函数 使用虚拟类 案例2 总结 概述 虚函数 (virtual function) 指可以被子类继承和覆盖的函数. 使用方法 基类声明成员函数为虚函数的方法: virtual [类型] 函数名([参数表列]) 注: 在类外定义虚函数时, 不需再加 virtual. 虚函数的特点: 提高程序扩充性: 派生类根据需要可以进行函数覆盖 成员函数被声明为虚数后, 其派生类中覆盖函数自动称为虚函数 若虚函数在派生类中未重新定义, 则派生类简单

随机推荐