PL/SQL的函数

简介

函数的语法格式为:

 FUNCTION(ARG,...,arg N)

函数的作用数据类型:算术函数,字符函数;日期函数;

根据返回值可以分为:单行函数和分组函数;

单行函数

1,字符函数

a:提供的返回值为字符型 的字符函数

CHAR(n):返回二进制等于n的字符;

CONCAT(char1,char2);返回将char1和c相Char2相连接的结果;

INITCAP(char):将char中的每个单词的第一个字母变成大写并返回;

LOWER(char):将char所有字母变成小写并返回;

LPAD(char1,n,[char2]):在char1的左边加上char2的字符序列,直到新生成的字符总长度为N,然后返回新的字符串。CHAR2的默认值为单表空格

LTRIM(char,[set])从char的左边长移去属于set字符集中的字母,至到第一个不属于set中的字符为止,并返回新的字符串,set的默认值为空格

NLS_INTCAP(char[,'nlsparams']):将char的所有单词的第一个字母改成大写,其它的字母改成小写返回;

NLS_LOWER(CHAR[,'nlsparams']):将CHAR的所有字母改成大写并返回。

NLS_UPPER(char[,'nlsparams']):将char的所有字母改成大写并返回。

REPLACE(char,search_string[,replacement_string]):用replacement_string替代char中所有的子串serach_string.

RPAD(char1,n[,char2]):在char1的右边加上char2的字符序列,直到新生成的字符串总长度为n,然后返回新的字符串。

RTRIM(char,[set]):从字符串char的右边移去属于set字符集中的字母,至到第一个不 属于set中的字符串为止,并返回新的

字符串。

SOUNDEX(char):返回包含char的语音表示的字符串

SUBSTR(char,m[,n]):从char的第m个字符开始取n个字符,构成char的子串并返回。

SUBSTRB(char,m[,n]):功能与上一个相同,但是它的变量m和n以字节为单位,而SUBSTR是以字符为单位。

TRANSLATE(char, from,to):将char 中属于 from的每一个字符用to中的相应字符替换并返回新的这字符串。

UPPER(CHAR):将char的所有字母变成大写并返回;

b:返回值为数值型的字符型函数

ASCII(char):返回char的第一个字节的十进制表示;

INTER(char1,char2[,n[,m]]从char1的第n个字符开始搜索第m次出现的char2,并返回第m次出现的char2,并返回,第m次出现的char2的首字符在char1中的位置;

INTERB(char1,char2[,n[,m]]:功能同INSTR相同,区别在于INSTRB是以字节为单位;

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

LENGTHB(CHAR):返回字符串char的字节长度。

例子

SELECT SUBSTR('ABCDEFG',3,2)
FROM DUAL

2.日期函数(除了MONTHS_BETWEEN外,其返回值均为日期型数值)

ADD_MONTHS(d,n):计算日期d加上n个月后的日期并返回。

LAST_DAY(d):计算d的月份最后一天的日期;

MONTHS_BETWEEN(d1,d1):计算D1和D2之间的月数,如果D1晚于D2,结果为正;

NEXT_TIME(d,z1,z2):返回z1时区中的日期和时间d在z2时区中对应的日期和时间;

NEXT_DAY(D,CHAR): char为'SUNDAY'到'SATURDAY'中的一个。该函数返回日期d后的第一个由char指写的周日的日期;

ROUND(d,[fmt]):按照格式模型fmt指定的单位,将日期d进行舍入并返回;

SYSDATE:返回当前的日期和时间,该函数没有参数

TRUNC(d,[fmt]):按照格式模型fmt指定的单位,将日期d进行截取并返回。

3.数值函数

ABS(N):返回n的绝对值

CELL(n):返回大于或等于N的最小整数

COS(n):返回n的余弦值

COSH(n):返回n双曲余弦;

EXP(n):返回en的值

FLOOR(n):返回小于要么等于n的最大的整数

LN(n):返回n的自然对数

LOG(m,n)返回以m为底n的对数

MOD(m,n):返回m除以n的余数;

POWER(m,n):返回m的n次幂,如果m为负数,则n必须是整数;

SIGN(n):当n<0时,返回-1;当n=0时,返回0 ;当n>0时,返回1

SINH(n):返回n的双曲正弦。

SIN(n):返回n的正弦

SQRT(n):返回n 的平方根;

TAN(n):返回n的正切

TANH(n):返回n的双曲正切

TRUNC(n[,m]): 返回在m位截断的n值,当 m省略时,在0位截断,当n为负数时,将小数点左边m个数字截去;

3.转换函数

从一种类型转换成另外的类型

CHARTOROWID(char):将char的值从 char型转换为ROWID型;

CONVERT(char,dest_char_se[,source_char_set]):将char从源字符集source_char_set转换成目标字符集dest_char_set;

HEXTOROW(char):将char由16进制类型转换成RAW类型;

RAWTOHEX(RAW):将raw由RAW类型转找成16进制字符值;

ROWIDTOCHAR(rowid):将rowid由 ROWID类型值转换成VARCHAR2类型

TO_CHAR(d[,fmt[,'nlsparams']])按照fmt 规定的日期格式 将d由日期型数值转换成VARCHAR2的值。

T0_CHAR(n[,fmt[,'nlsparams'):按照可选择的数值格式fmt,将n由数值型数转换成VARCHAR2型熟悉。

TO_DATE(char[,fmt[,'nlsparams']]);按照fmt指定的日期格式将char由CHAR转换成日期数值型;

TO_MULTI_BYTE(char):将char中的所有的单字节转换成多字节;

TO_NUMBER(char,[,fmt,[nlsparams]]):将char型转换成数值型

TO_SINGAL_BYTE(char):将char中的所有多字节符转换成相应的单字节符;

5.其它函数

DUMP(expr,[,return_format[,start_position[,length]]]); 返回包含有类型码的VARCHAR2值,以字节为单位的长度和表达式expr的内部表示。

GREATEST(expr[,expr]):返回参数表中所有表达式的最大值,第一个表达式之后的所有表达式都被隐式的转换成第一个表达式的数值类型。

LEAST(expr [,expr]):返回参数中所有表达式的最小值

NVL(expr1,expr1):如果expr1为空,则返回expr2的值;如果expr1不为空,则返回expr1;

USER:返回当前的oracle用户; 

UID:返回唯一标示肖前用户的一个整数;

USERNV(option):用VAR1CH2类型的数据返回当前的会话信息;

VSIZE(expr):返回表达式expr的内部表大式的字节数;

三:分组函数

COUNT({*|[DISTINCE|ALL]expr):返回查询行的函数

MIN/MAX(DISTINCE|ALL expr[):返回最小/最大表达式;

GROUP BY :这个就是分组

HAVING:限制分组的一个条件

发布了153 篇原创文章 · 获赞 15 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/beyond911/article/details/103841196