欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle内置SQL函数

程序员文章站 2022-06-08 19:37:07
...

http://www.cnblogs.com/yening10000/archive/2009/07/02/1515284.html F.1 字符函数——返回字符 这些函数全都接收的是字符族类型的参数 (CHR 除外 ) 并且返回字符 . 除了特别说明的之外 , 这些函数大部分返回 VARCHAR2 类型的数 . 字符函数的返回类型所受


http://www.cnblogs.com/yening10000/archive/2009/07/02/1515284.html


F.1字符函数——返回字符值

这些函数全都接收的是字符族类型的参数(CHR除外)并且返回字符值.除了特别说明的之外,这些函数大部分返回VARCHAR2类型的数值.字符函数的返回类型所受的限制和基本数据库类型所受的限制是相同的,比如: VARCHAR2数值被限制为2000字符(ORACLE 8中为4000字符),CHAR数值被限制为255字符(ORACLE8中是2000).当在过程性语句中使用时,它们可以被赋值给VARCHAR2或者CHAR类型的PL/SQL变量.

ASCII

语法:ascii(char c)

功能:返回一个字符串的第一个字符的ASCII码,他的逆函数是CHR()

使用位置过程性语句和SQL语句。

select ascii('') from dual;
select chr(49886) from dual;

CHR

语法: chr(x)

功能:返回在数据库字符集中与X拥有等价数值的字符。CHRASCII是一对反函数。经过CHR转换后的字符再经过ASCII转换又得到了原来的字符。

使用位置:过程性语句和SQL语句。

CONCAT

语法: CONCATc1,c2

功能: c1,c2均为字符串,函数将c2连接到c1的后面,如果c1null,将返回c2.如果c2null,则返回c1,如果c1c2都为null,则返回null,他和操作符||返回的结果相同.

使用位置:过程性语句和SQL语句。

INITCAP

语法:INITCAPstring

功能:返回字符串的每个单词的第一个字母大写而单词中的其他字母小写的string。单词是用.空格或给字母数字字符由空格,控制字符,标点符号进行分隔。不是字母的字符不变动。

使用位置:过程性语句和SQL语句。

select INITCAP('luo,jia,you')from dual;

select INITCAP('luo jia you')from dual;

LTRIM

语法:LTRIMstring1,string2

功能:返回删除从左边算起出现在string2中的字符的string1String2被缺省设置为单个的空格。数据库将扫描string1,从最左边开始。当遇到不在string2中的第一个字符,结果就被返回了。LTRIM的行为方式与RTRIM很相似。

使用位置:过程性语句和SQL语句。

LOWER

语法:LOWER(string)

功能:返回字符串,并将所有的字符小写

使用位置:过程性语句和SQL语句。

NLS_INITCAP

语法:NLS_INITCAPstring[,nlsparams]

功能:返回字符串每个单词第一个字母大写而单词中的其他字母小写的stringnlsparams

指定了不同于该会话缺省值的不同排序序列。如果不指定参数,则功能和INITCAP相同。Nlsparams可以使用的形式是:

NLS_SORT=sort’

这里sort制订了一个语言排序序列。

使用位置:过程性语句和SQL语句。

NLS_LOWER

语法:NLS_LOWERstring[,nlsparams]

功能:返回字符串中的所有字母都是小写形式的string。不是字母的字符不变。

Nlsparams参数的形式与用途和NLS_INITCAP中的nlsparams参数是相同的。如果nlsparams没有被包含,那么NLS_LOWER所作的处理和LOWER相同。

使用位置;过程性语句和SQL语句。

NLS_UPPER

语法:nls_upperstring[,nlsparams]

功能:返回字符串中的所有字母都是大写的形式的string。不是字母的字符不变。nlsparams参数的形式与用途和NLS_INITCAP中的相同。如果没有设定参数,则NLS_UPPER功能和UPPER相同。

使用位置:过程性语句和SQL语句。

REPLACE

语法:REPLACEstringsearch_str[,replace_str]

功能:string中的所有的子字符串search_str用可选的replace_str替换,如果没有指定replace_str,所有的string中的子字符串search_str都将被删除。REPLACETRANSLATE所提供的功能的一个子集。

使用位置:过程性语句和SQL语句。

RPAD

语法:RPADstring1,x[,string2]

功能:返回在X字符长度的位置上插入一个string2中的字符的string1。如果string2的长度要比X字符少,就按照需要进行复制。如果string2多于X字符,则仅string1前面的X各字符被使用。如果没有指定string2,那么使用空格进行填充。X是使用显示长度可以比字符串的实际长度要长。RPAD的行为方式与LPAD很相似,除了它是在右边而不是在左边进行填充。

使用位置:过程性语句和SQL语句。

LPAD

语法:LPADstring1,x[,string2]

功能:返回在X字符长度的位置上插入一个string2中的字符的string1。如果string2的长度要比X字符少,就按照需要进行复制。如果string2多于X字符,则仅string1前面的X各字符被使用。如果没有指定string2,那么使用空格进行填充。X是使用显示长度可以比字符串的实际长度要长。RPAD的行为方式与LPAD很相似,除了它是在右边而不是在左边进行填充。

String1,string2均为字符串,x为整数。在string1的左侧用string2字符串补足致长度x,可多次重复,如果x小于string1的长度,那么只返回string1中左侧x个字符长的字符串,其他的将被截去。String2的缺省值为单空格

使用位置:过程性语句和SQL语句。

select LPAD('123',8,'0') from dual; -- 00000123

select LPAD('123456789',8,'0') from dual; --12345678

RTRIM

语法: RTRIMstring1,[,string2]

功能: 返回删除从右边算起出现在string1中出现的字符string2. string2被缺省设置为单个的空格.数据库将扫描string1,从右边开始.当遇到不在string2中的第一个字符,结果就被返回了RTRIM的行为方式与LTRIM很相似.

使用位置:过程性语句和SQL语句。

SOUNDEX

语法: SOUNDEXstring

功能: 返回string的声音表示形式.这对于比较两个拼写不同但是发音类似的单词而言很有帮助. 返回与string发音相似的词

使用位置:过程性语句和SQL语句。

SUBSTR

语法: SUBSTRstring,a[,b]

功能: 返回从字母为值a开始b个字符长的string的一个子字符串.如果a0,那么它就被认为从第一个字符开始.如果是正数,返回字符是从左边向右边进行计算的.如果b是负数,那么返回的字符是从string的末尾开始从右向左进行计算的.如果b不存在,那么它将缺省的设置为整个字符串.如果b小于1,那么将返回NULL.如果ab使用了浮点数,那么该数值将在处理进行以前首先被却为一个整数.

使用位置:过程性语句和SQL语句。

SUBSTRB

语法: SUBSTRBstring,a[,b]

功能: SUBSTR大致相同,只是a,b是以字节计算

使用位置:过程性语句和SQL语句。

TRANSLATE

语法: TRANSLATE(string,from_str,to_str)

功能: 返回将所出现的from_str中的每个字符替换为to_str中的相应字符以后的string. TRANSLATEREPLACE所提供的功能的一个超集.如果from_strto_str,那么在from_str中而不在to_str中而外的字符将从string中被删除,因为它们没有相应的替换字符. to_str不能为空.Oracle把空字符串认为是NULL,并且如果TRANSLATE中的任何参数为NULL,那么结果也是NULL.

使用位置:过程性语句和SQL语句。

select TRANSLATE('fumble','umf','abc') test from dual; --cabble
select TRANSLATE('fumble','fu','abcdd') test from dual; --abmble

TRIM

语法: TRIM(string)

功能: 删除string字符串前后的空格

使用位置:过程性语句和SQL语句。

UPPER

语法: UPPERstring

功能: 返回大写的string.不是字母的字符不变.如果stringCHAR数据类型的,那么结果也是CHAR类型的.如果stringVARCHAR2类型的,那么结果也是VARCHAR2类型的.

使用位置: 过程性语句和SQL语句。

F.2字符函数——返回数字

这些函数接受字符参数回数字结果.参数可以是CHAR或者是VARCHAR2类型的.尽管实际下许多结果都是整数值,但是返回结果都是简单的NUMBER类型的,没有定义任何的精度或刻度范围.

ASCII

语法: ASCIIstring

功能: 数据库字符集返回string的第一个字节的十进制表示.请注意该函数仍然称作为ASCII.尽管许多字符集不是7ASCII.CHRASCII是互为相反的函数.CHR得到给定字符编码的响应字符. ASCII得到给定字符的字符编码.

使用位置: 过程性语句和SQL语句。

INSTR

语法: INSTRstring1, string2[a,b]

功能: 得到在string1中包含string2的位置. string1时从左边开始检查的,开始的位置为a,如果a是一个负数,那么string1是从右边开始进行扫描的.b次出现的位置将被返回. ab都缺省设置为1,这将会返回在string1中第一次出现string2的位置.如果string2ab的规定下没有找到,那么返回0.位置的计算是相对于string1的开始位置的,不管ab的取值是多少.

使用位置: 过程性语句和SQL语句。

INSTRB

语法: INSTRBstring1, string2[a,[b]]

功能: INSTR相同,只是操作的对参数字符使用的位置的是字节.

使用位置: 过程性语句和SQL语句。

LENGTH

语法: LENGTHstring

功能: 返回string的字节单位的长度.CHAR数值是填充空格类型的,如果string由数据类型CHAR,它的结尾的空格都被计算到字符串长度中间.如果stringNULL,返回结果是NULL,而不是0.

使用位置: 过程性语句和SQL语句。

LENGTHB

语法: LENGTHBstring

功能: 返回以字节为单位的string的长度.对于单字节字符集LENGTHBLENGTH是一样的.

使用位置: 过程性语句和SQL语句。

NLSSORT

语法: NLSSORTstring[,nlsparams]

功能: 得到用于排序string的字符串字节.所有的数值都被转换为字节字符串,这样在不同数据库之间就保持了一致性. Nlsparams的作用和NLS_INITCAP中的相同.如果忽略参数,会话使用缺省排序.

使用位置: 过程性语句和SQL语句。

F.3数字函数

函数接受NUMBER类型的参数并返回NUMBER类型的数值.超越函数和三角函数的返回值精确到36.ACOSASINATANATAN2的结果精确到36.

ABS

语法: ABS(x)

功能: 得到x的绝对值.

使用位置: 过程性语言和SQL语句。

ACOS

语法: ACOS(x)

功能: 返回x的反余弦值. x应该从01之间的数,结果在0pi之间,以弧度为单位.

使用位置: 过程性语言和SQL语句。

ASIN

语法: ASIN(x)

功能: 计算x的反正弦值. X的范围应该是-11之间,返回的结果在-pi/2pi/2之间,以弧度为单位.

使用位置: 过程性语言和SQL语句。

ATAN

语法: ATAN(x)

功能: 计算x的反正切值.返回值在-pi/2pi/2之间,单位是弧度.

使用位置: 过程性语言和SQL语句。

ATAN2

语法: ATAN2(x,y)

功能: 计算xy的反正切值.结果在负的pi/2到正的pi/2之间,单位是弧度.

使用位置: 过程性语言和SQL语句。

CEIL

语法: CEIL(x)

功能: 计算大于或等于x的最小整数值.

使用位置: 过程性语言和SQL语句。

COS

语法: COS(x)

功能: 返回x的余弦值. X的单位是弧度.

使用位置: 过程性语言和SQL语句。

COSH

语法: COSH(x)

功能: 计算x的双曲余弦值.

EXP

语法: EXP(x)

功能: 计算ex次幂. e为自然对数,约等于2.71828.

使用位置: 过程性语言和SQL语句。

FLOOR

语法: FLOOR(x)

功能: 返回小于等于x的最大整数值.

使用位置: 过程性语言和SQL语句。

LN

语法: LN(x)

功能: 返回x的自然对数. x必须是正数,并且大于0

使用位置: 过程性语言和SQL语句。

LOG

语法: LOG(x,y)

功能: 计算以x为底的y的对数 .x必须大于0而且不等于1, y为任意正数.

使用位置: 过程性语言和SQL语句。

MOD

语法: MOD(x,y)

功能: 返回x除以y的余数.如果y0,则返回x

使用位置: 过程性语言和SQL语句。

POWER

语法: POWER(x,y)

功能: 计算xy次幂.

使用位置: 过程性语言和SQL语句。

ROUND

: ROUND(x[,y])

功能: 计算保留到小数点右边y位的x. y缺省设置为0,这会将x保留为最接近的整数.如果y小于0,保留到小数点左边相应的位. Y必须是整数.进行四舍五入。

使用位置: 过程性语言和SQL语句。

SIGN

语法: SIGN(x)

功能: 获得x的符号位标志.如果x返回-