[b]SQL中的单记录函数[/b]
[u]1、ascii[/u]
返回与指定的字符对应的十进制数;
SQL> select ascii('A') A,ascii('a') a, ascii('0') zero from dual;
A A ZERO
---------- ---------- ----------
65 97 48
[u]2、chr [/u]
给出整数,返回对应的字符;
SQL> select chr(11) from dual;
CH
--
[u]3、concat[/u]
连接两个字符;
SQL> select concat('029-','85671737') mycode from dual;
MYCODE
------------------------
029-85671737
[u]4、initcap[/u]
返回字符串并将字符串的第一个字母变为大写;
SQL> select initcap('mycode') initcap from dual;
INITCAP
------------
Mycode
[u]5、instr(c1,c2,i,j)[/u]
在一个字符串中搜索指定的字母,返回发现指定的字符的位置;
c1被搜索的字符串、c2希望搜索的字符串,[color=red]i搜索的开始位置默认为1,j出现的位置默认为1[/color]
i和j参数存在疑问
[u]6、length[/u]
返回字符串的长度;
SQL> select length('oracle') len from dual;
LEN
----------
6
[u]7、lower[/u]
返回字符串,并将所有的字符小写;
SQL> select lower('Do you know Oracle') low from dual;
LOW
------------------------------------
do you know oracle
[u]8、upper[/u]
返回字符串,并将所有字符大写;
SQL> select upper('Do you know Oracle') low from dual;
LOW
------------------------------------
DO YOU KNOW ORACLE
[u]9、rpad(c1,len,c2)和lpad(c1,len,c2)(粘贴字符)[/u]
rpad在列的右边粘贴字符
lpad在列的左边粘贴字符
其中参数,c1是原字符,len是粘贴字符后字符串达到的长度,c2是要补充粘贴的字符;
SQL> select rpad('gao',5,'*') right, lpad('gao',5,'*') from dual;
RIGHT LPAD('GAO'
---------- ----------
gao** **gao
[u]10、ltrim(c1,c2)和rtrim(c1,c2)[/u]
ltrim删除字符串左边的字符串;
right删除字符串右边的字符串;
c1是原字符串,c2是要删除掉的字符串;c2字符串省略则去掉空格;
SQL> select ltrim(' gao',' g') from dual;
LTRI
----
ao
[u]11、replace(str, s1,s2)[/u]
str 原字符串,s1被替换的字符串,s2要替换的字符串;
SQL> select replace('string','tr','end') str from dual;
STR
--------------
sending
[u]12、substr(str,start,count)[/u]
取子字符串,从start位置,长度count;
SQL> select substr('this is oracle function',6,2) from dual;
SUBS
----
is
13、soundex
返回一个与给定的字符串读音相同的字符串;
[u]14、trim()[/u]
默认去掉前面和后面的字符串;
[u]15、abs[/u]
返回指定值的绝对值;
16、acos
给出反余玹的值;
17、asin
给出反正玹的值;
18、atan
返回一个数字的反正切值;
19、cos
返回一个给定数字的余玄;
20、cosh
返回一个数字的反余玄值;
[u]21、ceil[/u]
返回大于或等于给出数字的最小整数;
SQL> select ceil(-3.01),ceil(3.01) from dual;
CEIL(-3.01) CEIL(3.01)
----------- ----------
-3 4
22、exp
返回一个数字e的n次方根;
[u]23、floor[/u](同java)
对给定的数字取最小整数;
SQL> select floor(3.13),floor(-3.13),floor(3.5),floor(-3.5) from dual;
FLOOR(3.13) FLOOR(-3.13) FLOOR(3.5) FLOOR(-3.5)
----------- ------------ ---------- -----------
3 -4 3 -4
24、ln
返回一个数字的对数值;
25、log(n1,n2)
返回一个以n1为底n2的对数;
[u]26、mod(n1,n2)[/u]
返回一个n1除以n2的余数;
SQL> select mod(5,2) from dual;
MOD(5,2)
----------
1
27、power
返回n1的n2次方根;
SQL> select power(2,3) from dual;
POWER(2,3)
----------
8
[u]28、round和trunc[/u]
按照指定的精度进行舍入;
round四舍五入,与java不同的是Math.round(-2.5) = -2
trunc直接截取;
SQL> select round(2.5),round(-2.5),trunc(2.5),trunc(-2.5) from dual;
ROUND(2.5) ROUND(-2.5) TRUNC(2.5) TRUNC(-2.5)
---------- ----------- ---------- -----------
3 -3 2 -2
29、sign
取数字n的符号,大于0返回1,小于0返回-1,等于0返回0;
30、sin
返回一个数字的正玹值;
31、sigh
返回双曲正玹的值;
32、sqrt
返回数字n的根
33、tan
返回数字的正切值;
34、tanh
返回数字n的双曲正切值;
[u]35、trunc[/u]
按照指定的精度截取一个数;
[u]36、add_months[/u]
添加或减去月份;
SQL> select to_char(add_months(to_date('200903','yyyymm'),-2),'yyyymm') from dual;
TO_CHAR(ADD_
------------
200901
[u]37、last_day[/u]
返回日期的最后一天;
SQL> select last_day(sysdate) from dual;
LAST_DAY(SYSDA
--------------
30-4月 -09
[u]38、months_between(date2,date1)[/u]
给出date2-date1的月份;
SQL> select months_between(to_date('2009-03','yyyy-mm'),to_date('2008-06','yyyy-
mm')) month from dual;
MONTH
----------
9
[color=red]39、new_time(date,this,that)[/color]
给出在this时区=that时区的日期和时间;
SQL> select new_time(sysdate,'pdt','gmt') from dual;
NEW_TIME(SYSDA
--------------
07-4月 -09
[u]40、next_day(date,day)[/u]
给出日期date和星期x之后计算下一个星期的日期;
SQL> select next_day(sysdate,'星期二') from dual;
NEXT_DAY(SYSDA
--------------
14-4月 -09
[u]41、sysdate[/u]
用来得到系统的当前日期;
SQL> select to_char(sysdate,'yyyy-mm-dd day') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDDAY')
----------------------------------------------
2009-04-07 星期二
42、chartorowid
将字符数据类型转换为rowid类型;
SQL> select rowid, rowidtochar(rowid),chartorowid(rowid) from dual;
ROWID ROWIDTOCHAR(ROWID) CHARTOROWID(ROWID)
------------------ ------------------------------------ ------------------
AAAAECAABAAAAgiAAA AAAAECAABAAAAgiAAA AAAAECAABAAAAgiAAA
43、convert(c,dset,sset)
将原字符串,从一个语言集转换成另一个语言集
44、hextoraw
将一个十六进制构成的字符串转换成二进制
45、rawtohex
将一个二进制构成的字符串转换成十六进制
46、rowidtochar
将rowid数据类型转换成字符类型
[u]47、to_char(date, format)[/u]
将日期型转换成字符串型
[u]48、to_date(str, format)[/u]
将字符型转换成日期型
49、to_multi_btye
将字符串中的单字节字符转化为多字节字符
50、to_number
将给出的字符转换为数字
51、bfilename(dir,file)
指定一个外部二进制文件
SQL>insert into file_tb1 values(bfilename(’lob_dir1’,’image1.gif’));
52、
[u]1、ascii[/u]
返回与指定的字符对应的十进制数;
SQL> select ascii('A') A,ascii('a') a, ascii('0') zero from dual;
A A ZERO
---------- ---------- ----------
65 97 48
[u]2、chr [/u]
给出整数,返回对应的字符;
SQL> select chr(11) from dual;
CH
--
[u]3、concat[/u]
连接两个字符;
SQL> select concat('029-','85671737') mycode from dual;
MYCODE
------------------------
029-85671737
[u]4、initcap[/u]
返回字符串并将字符串的第一个字母变为大写;
SQL> select initcap('mycode') initcap from dual;
INITCAP
------------
Mycode
[u]5、instr(c1,c2,i,j)[/u]
在一个字符串中搜索指定的字母,返回发现指定的字符的位置;
c1被搜索的字符串、c2希望搜索的字符串,[color=red]i搜索的开始位置默认为1,j出现的位置默认为1[/color]
i和j参数存在疑问
[u]6、length[/u]
返回字符串的长度;
SQL> select length('oracle') len from dual;
LEN
----------
6
[u]7、lower[/u]
返回字符串,并将所有的字符小写;
SQL> select lower('Do you know Oracle') low from dual;
LOW
------------------------------------
do you know oracle
[u]8、upper[/u]
返回字符串,并将所有字符大写;
SQL> select upper('Do you know Oracle') low from dual;
LOW
------------------------------------
DO YOU KNOW ORACLE
[u]9、rpad(c1,len,c2)和lpad(c1,len,c2)(粘贴字符)[/u]
rpad在列的右边粘贴字符
lpad在列的左边粘贴字符
其中参数,c1是原字符,len是粘贴字符后字符串达到的长度,c2是要补充粘贴的字符;
SQL> select rpad('gao',5,'*') right, lpad('gao',5,'*') from dual;
RIGHT LPAD('GAO'
---------- ----------
gao** **gao
[u]10、ltrim(c1,c2)和rtrim(c1,c2)[/u]
ltrim删除字符串左边的字符串;
right删除字符串右边的字符串;
c1是原字符串,c2是要删除掉的字符串;c2字符串省略则去掉空格;
SQL> select ltrim(' gao',' g') from dual;
LTRI
----
ao
[u]11、replace(str, s1,s2)[/u]
str 原字符串,s1被替换的字符串,s2要替换的字符串;
SQL> select replace('string','tr','end') str from dual;
STR
--------------
sending
[u]12、substr(str,start,count)[/u]
取子字符串,从start位置,长度count;
SQL> select substr('this is oracle function',6,2) from dual;
SUBS
----
is
13、soundex
返回一个与给定的字符串读音相同的字符串;
[u]14、trim()[/u]
默认去掉前面和后面的字符串;
[u]15、abs[/u]
返回指定值的绝对值;
16、acos
给出反余玹的值;
17、asin
给出反正玹的值;
18、atan
返回一个数字的反正切值;
19、cos
返回一个给定数字的余玄;
20、cosh
返回一个数字的反余玄值;
[u]21、ceil[/u]
返回大于或等于给出数字的最小整数;
SQL> select ceil(-3.01),ceil(3.01) from dual;
CEIL(-3.01) CEIL(3.01)
----------- ----------
-3 4
22、exp
返回一个数字e的n次方根;
[u]23、floor[/u](同java)
对给定的数字取最小整数;
SQL> select floor(3.13),floor(-3.13),floor(3.5),floor(-3.5) from dual;
FLOOR(3.13) FLOOR(-3.13) FLOOR(3.5) FLOOR(-3.5)
----------- ------------ ---------- -----------
3 -4 3 -4
24、ln
返回一个数字的对数值;
25、log(n1,n2)
返回一个以n1为底n2的对数;
[u]26、mod(n1,n2)[/u]
返回一个n1除以n2的余数;
SQL> select mod(5,2) from dual;
MOD(5,2)
----------
1
27、power
返回n1的n2次方根;
SQL> select power(2,3) from dual;
POWER(2,3)
----------
8
[u]28、round和trunc[/u]
按照指定的精度进行舍入;
round四舍五入,与java不同的是Math.round(-2.5) = -2
trunc直接截取;
SQL> select round(2.5),round(-2.5),trunc(2.5),trunc(-2.5) from dual;
ROUND(2.5) ROUND(-2.5) TRUNC(2.5) TRUNC(-2.5)
---------- ----------- ---------- -----------
3 -3 2 -2
29、sign
取数字n的符号,大于0返回1,小于0返回-1,等于0返回0;
30、sin
返回一个数字的正玹值;
31、sigh
返回双曲正玹的值;
32、sqrt
返回数字n的根
33、tan
返回数字的正切值;
34、tanh
返回数字n的双曲正切值;
[u]35、trunc[/u]
按照指定的精度截取一个数;
[u]36、add_months[/u]
添加或减去月份;
SQL> select to_char(add_months(to_date('200903','yyyymm'),-2),'yyyymm') from dual;
TO_CHAR(ADD_
------------
200901
[u]37、last_day[/u]
返回日期的最后一天;
SQL> select last_day(sysdate) from dual;
LAST_DAY(SYSDA
--------------
30-4月 -09
[u]38、months_between(date2,date1)[/u]
给出date2-date1的月份;
SQL> select months_between(to_date('2009-03','yyyy-mm'),to_date('2008-06','yyyy-
mm')) month from dual;
MONTH
----------
9
[color=red]39、new_time(date,this,that)[/color]
给出在this时区=that时区的日期和时间;
SQL> select new_time(sysdate,'pdt','gmt') from dual;
NEW_TIME(SYSDA
--------------
07-4月 -09
[u]40、next_day(date,day)[/u]
给出日期date和星期x之后计算下一个星期的日期;
SQL> select next_day(sysdate,'星期二') from dual;
NEXT_DAY(SYSDA
--------------
14-4月 -09
[u]41、sysdate[/u]
用来得到系统的当前日期;
SQL> select to_char(sysdate,'yyyy-mm-dd day') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDDAY')
----------------------------------------------
2009-04-07 星期二
42、chartorowid
将字符数据类型转换为rowid类型;
SQL> select rowid, rowidtochar(rowid),chartorowid(rowid) from dual;
ROWID ROWIDTOCHAR(ROWID) CHARTOROWID(ROWID)
------------------ ------------------------------------ ------------------
AAAAECAABAAAAgiAAA AAAAECAABAAAAgiAAA AAAAECAABAAAAgiAAA
43、convert(c,dset,sset)
将原字符串,从一个语言集转换成另一个语言集
44、hextoraw
将一个十六进制构成的字符串转换成二进制
45、rawtohex
将一个二进制构成的字符串转换成十六进制
46、rowidtochar
将rowid数据类型转换成字符类型
[u]47、to_char(date, format)[/u]
将日期型转换成字符串型
[u]48、to_date(str, format)[/u]
将字符型转换成日期型
49、to_multi_btye
将字符串中的单字节字符转化为多字节字符
50、to_number
将给出的字符转换为数字
51、bfilename(dir,file)
指定一个外部二进制文件
SQL>insert into file_tb1 values(bfilename(’lob_dir1’,’image1.gif’));
52、