成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > ORACLE常用數(shù)值函數(shù)、轉(zhuǎn)換函數(shù)、字符串函數(shù)

ORACLE常用數(shù)值函數(shù)、轉(zhuǎn)換函數(shù)、字符串函數(shù)

熱門標(biāo)簽:貴陽(yáng)智能電銷機(jī)器人官網(wǎng) 沈陽(yáng)400電話是如何辦理 地圖標(biāo)注付款了怎么找不到了 溫州人工外呼系統(tǒng) 外呼系統(tǒng)鄭州 北京外呼系統(tǒng)公司排名 北京營(yíng)銷外呼系統(tǒng)廠家 外呼系統(tǒng)口號(hào) 百度地圖標(biāo)注員是干什么
本文更多將會(huì)介紹三思在日常中經(jīng)常會(huì)用到的,或者雖然很少用到,但是感覺挺有意思的一些函數(shù)。分二類介紹,分別是:
  著名函數(shù)篇?。?jīng)常用到的函數(shù)
  非著名函數(shù)篇-即雖然很少用到,但某些情況下卻很實(shí)用

注:N表示數(shù)字型,C表示字符型,D表示日期型,[]表示內(nèi)中參數(shù)可被忽略,fmt表示格式。

  單值函數(shù)在查詢中返回單個(gè)值,可被應(yīng)用到select,where子句,start with以及connect by 子句和having子句。
(一).數(shù)值型函數(shù)(Number Functions)
數(shù)值型函數(shù)輸入數(shù)字型參數(shù)并返回?cái)?shù)值型的值。多數(shù)該類函數(shù)的返回值支持38位小數(shù)點(diǎn),諸如:COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, and TANH 支持36位小數(shù)點(diǎn)。ACOS, ASIN, ATAN, and ATAN2支持30位小數(shù)點(diǎn)。

1、MOD(n1,n2) 返回n1除n2的余數(shù),如果n2=0則返回n1的值。
例如:SELECT MOD(24,5) FROM DUAL;

2、ROUND(n1[,n2]) 返回四舍五入小數(shù)點(diǎn)右邊n2位后n1的值,n2缺省值為0,如果n2為負(fù)數(shù)就舍入到小數(shù)點(diǎn)左邊相應(yīng)的位上(雖然oracle documents上提到n2的值必須為整數(shù),事實(shí)上執(zhí)行時(shí)此處的判斷并不嚴(yán)謹(jǐn),即使n2為非整數(shù),它也會(huì)自動(dòng)將n2取整后做處理,但是我文檔中其它提到必須為整的地方需要特別注意,如果不為整執(zhí)行時(shí)會(huì)報(bào)錯(cuò)的)。
例如:SELECT ROUND(23.56),ROUND(23.56,1),ROUND(23.56,-1) FROM DUAL;

3、TRUNC(n1[,n2] 返回截尾到n2位小數(shù)的n1的值,n2缺省設(shè)置為0,當(dāng)n2為缺省設(shè)置時(shí)會(huì)將n1截尾為整數(shù),如果n2為負(fù)值,就截尾在小數(shù)點(diǎn)左邊相應(yīng)的位上。
例如:SELECT TRUNC(23.56),TRUNC(23.56,1),TRUNC(23.56,-1) FROM DUAL;

(二).字符型函數(shù)返回字符值(Character Functions Returning Character Values)
  該類函數(shù)返回與輸入類型相同的類型。
 返回的CHAR類型值長(zhǎng)度不超過(guò)2000字節(jié);
 返回的VCHAR2類型值長(zhǎng)度不超過(guò)4000字節(jié);
如果上述應(yīng)返回的字符長(zhǎng)度超出,oracle并不會(huì)報(bào)錯(cuò)而是直接截?cái)嘀磷畲罂芍С珠L(zhǎng)度返回。

 返回的CLOB類型值長(zhǎng)度不超過(guò)4G;
對(duì)于CLOB類型的函數(shù),如果返回值長(zhǎng)度超出,oracle不會(huì)返回任何錯(cuò)誤而是直接拋出錯(cuò)誤。

1、LOWER(c) 將指定字符串內(nèi)字符變?yōu)樾?,支持CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB,NCLOB類型
例如:SELECT LOWER('WhaT is tHis') FROM DUAL;

2、UPPER(c) 將指定字符串內(nèi)字符變?yōu)榇髮?,支持CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB,NCLOB類型
例如:SELECT UPPER('WhaT is tHis') FROM DUAL;

3、LPAD(c1,n[,c2]) 返回指定長(zhǎng)度=n的字符串,需要注意的有幾點(diǎn):
 如果nc1.length則從右到左截取指定長(zhǎng)度返回;
 如果n>c1.length and c2 is null,以空格從左向右補(bǔ)充字符長(zhǎng)度至n并返回;
 如果n>c1.length and c2 is not null,以指定字符c2從左向右補(bǔ)充c1長(zhǎng)度至n并返回;
例如:SELECT LPAD('WhaT is tHis',5),LPAD('WhaT is tHis',25),LPAD('WhaT is tHis',25,'-') FROM DUAL;
最后大家再猜一猜,如果n0,結(jié)果會(huì)怎么樣

4、RPAD(c1,n[,c2]) 返回指定長(zhǎng)度=n的字符串,基本與上同,不過(guò)補(bǔ)充字符是從右向左方向正好與上相反;
例如:SELECT RPAD('WhaT is tHis',5),RPAD('WhaT is tHis',25),RPAD('WhaT is tHis',25,'-') FROM DUAL;

5、TRIM([[LEADING||TRAILING||BOTH] c2 FROM] c1) 哈哈,被俺無(wú)敵的形容方式搞暈頭了吧,這個(gè)地方還是看圖更明了一些。
看起來(lái)很復(fù)雜,理解起來(lái)很簡(jiǎn)單:
 如果沒有指定任何參數(shù)則oracle去除c1頭尾空格
例如:SELECT TRIM(' WhaT is tHis ') FROM DUAL;
 如果指定了c2參數(shù),則oracle去掉c1頭尾c2(這個(gè)建議細(xì)致測(cè)試,有多種不同情形的喲)
例如:SELECT TRIM('W' FROM 'WhaT is tHis w W') FROM DUAL;
 如果指定了leading參數(shù)則會(huì)去掉c1頭部c2
例如:SELECT TRIM(leading 'W' FROM 'WhaT is tHis w W') FROM DUAL;
 如果指定了trailing參數(shù)則會(huì)去掉c1尾部c2
例如:SELECT TRIM(trailing 'W' FROM 'WhaT is tHis w W') FROM DUAL;
 如果指定了both參數(shù)則會(huì)去掉c1頭尾c2(跟不指定有區(qū)別嗎?沒區(qū)別!)
例如:SELECT TRIM(both 'W' FROM 'WhaT is tHis w W') FROM DUAL;

注意:c2長(zhǎng)度=1

6、LTRIM(c1[,c2]) 千萬(wàn)表以為與上面那個(gè)長(zhǎng)的像,功能也與上面的類似,本函數(shù)是從字符串c1左側(cè)截取掉與指定字符串c2相同的字符并返回。如果c2為空則默認(rèn)截取空格。
例如:SELECT LTRIM('WWhhhhhaT is tHis w W','Wh') FROM DUAL;

7、RTRIM(c1,c2)與上同,不過(guò)方向相反
例如:SELECT RTRIM('WWhhhhhaT is tHis w W','W w') FROM DUAL;

8、REPLACE(c1,c2[,c3]) 將c1字符串中的c2替換為c3,如果c3為空,則從c1中刪除所有c2。
例如:SELECT REPLACE('WWhhhhhaT is tHis w W','W','-') FROM DUAL;

9、SOUNDEX(c) 神奇的函數(shù)啊,該函數(shù)返回字符串參數(shù)的語(yǔ)音表示形式,對(duì)于比較一些讀音相同,但是拼寫不同的單詞非常有用。計(jì)算語(yǔ)音的算法如下:
 保留字符串首字母,但刪除a、e、h、i、o、w、y。
 將下表中的數(shù)字賦給相對(duì)應(yīng)的字母:
1:b、f、p、v
2:c、g、k、q、s、x、z
3:d、t
4:l
5:m、n
6:R
 如果字符串中存在擁有相同數(shù)字的2個(gè)以上(包含2個(gè))的字母在一起(例如b和f),或者只有h或w,則刪除其他的,只保留1個(gè);
 只返回前4個(gè)字節(jié),不夠用0填充
例如:SELECT SOUNDEX('dog'),soundex('boy') FROM DUAL;

10、SUBSTR(c1,n1[,n2]) 截取指定長(zhǎng)度的字符串。稍不注意就可能充滿了陷阱的函數(shù)。
n1=開始長(zhǎng)度;
n2=截取的字符串長(zhǎng)度,如果為空,默認(rèn)截取到字符串結(jié)尾;
 如果n1=0 then n1=1
 如果n1>0,則oracle從左向右確認(rèn)起始位置截取
例如:SELECT SUBSTR('What is this',5,3) FROM DUAL;
 如果n10,則oracle從右向左數(shù)確認(rèn)起始位置
例如:SELECT SUBSTR('What is this',-5,3) FROM DUAL;
 如果n1>c1.length則返回空
例如:SELECT SUBSTR('What is this',50,3) FROM DUAL;
然后再請(qǐng)你猜猜,如果n21,會(huì)如何返回值呢

11、TRANSLATE(c1,c2,c3) 就功能而言,此函數(shù)與replace有些相似。但需要注意的一點(diǎn)是,translate是絕對(duì)匹配替換,這點(diǎn)與replace函數(shù)具有非常大區(qū)別。什么是絕對(duì)匹配替換呢?簡(jiǎn)單的說(shuō),是將字符串c1中按一定的格式c2替換為c3。如果文字形容仍然無(wú)法理解,我們通過(guò)幾具實(shí)例來(lái)說(shuō)明:
例如:
SELECT TRANSLATE('What is this','','-') FROM DUAL;
SELECT TRANSLATE('What is this','-','') FROM DUAL;
結(jié)果都是空。來(lái)試試這個(gè):
SELECT TRANSLATE('What is this',' ',' ') FROM DUAL;
再來(lái)看這個(gè):
SELECT TRANSLATE('What is this','ait','-*') FROM DUAL;
是否明白了點(diǎn)呢?Replace函數(shù)理解比較簡(jiǎn)單,它是將字符串中指定字符替換成其它字符,它的字符必須是連續(xù)的。而translate中,則是指定字符串c1中出現(xiàn)的c2,將c2中各個(gè)字符替換成c3中位置順序與其相同的c3中的字符。明白了?Replace是替換,而translate則像是過(guò)濾

(三).字符型函數(shù)返回?cái)?shù)字值(Character Functions Returning Number Values)
本類函數(shù)支持所有的數(shù)據(jù)類型

1、INSTR(c1,c2[,n1[,n2]]) 返回c2在c1中位置
 c1:原字符串
 c2:要尋找的字符串
 n1:查詢起始位置,正值表示從左到右,負(fù)值表示從右到左 (大小表示位置,比如3表示左面第3處開始,-3表示右面第3處開始)。黑黑,如果為0的話,則返回的也是0
 n2:第幾個(gè)匹配項(xiàng)。大于0
例如:SELECT INSTR('abcdefg','e',-3) FROM DUAL;

2、LENGTH(c) 返回指定字符串的長(zhǎng)度。如果
例如:SELECT LENGTH('A123中') FROM DUAL;
猜猜SELECT LENGTH('') FROM DUAL;的返回值是什么

(四).日期函數(shù)(Datetime Functions)
本類函數(shù)中,除months_between返回?cái)?shù)值外,其它都將返回日期。

1、ADD_MONTHS() 返回指定日期月份+n之后的值,n可以為任何整數(shù)。
例如:SELECT ADD_MONTHS(sysdate,12),ADD_MONTHS(sysdate,-12) FROM DUAL;

2、CURRENT_DATE 返回當(dāng)前session所在時(shí)區(qū)的默認(rèn)時(shí)間
例如:
SQL> alter session set nls_date_format = 'mm-dd-yyyy' ;
SQL> select current_date from dual;

3、SYSDATE 功能與上相同,返回當(dāng)前session所在時(shí)區(qū)的默認(rèn)時(shí)間。但是需要注意的一點(diǎn)是,如果同時(shí)使用sysdate與current_date獲得的時(shí)間不一定相同,某些情況下current_date會(huì)比sysdate快一秒。經(jīng)過(guò)與xyf_tck(兄臺(tái)的大作ORACLE的工作機(jī)制寫的很好,深入淺出)的短暫交流,我們認(rèn)為current_date是將current_timestamp中毫秒四舍五入后的返回,雖然沒有找到文檔支持,但是想來(lái)應(yīng)該八九不離十。同時(shí),僅是某些情況下會(huì)有一秒的誤差,一般情況下并不會(huì)對(duì)你的操作造成影響,所以了解即可。
例如:SELECT SYSDATE,CURRENT_DATE FROM DUAL;

4、LAST_DAY(d) 返回指定時(shí)間所在月的最后一天
例如:SELECT last_day(SYSDATE) FROM DUAL;

5、NEXT_DAY(d,n) 返回指定日期后第一個(gè)n的日期,n為一周中的某一天。但是,需要注意的是n如果為字符的話,它的星期形式需要與當(dāng)前session默認(rèn)時(shí)區(qū)中的星期形式相同。
例如:三思用的中文nt,nls_language值為SIMPLIFIED CHINESE
SELECT NEXT_DAY(SYSDATE,5) FROM DUAL;
SELECT NEXT_DAY(SYSDATE,'星期四') FROM DUAL;
兩種方式都可以取到正確的返回,但是:
SELECT NEXT_DAY(SYSDATE,'Thursday') FROM DUAL;
則會(huì)執(zhí)行出錯(cuò),提供你說(shuō)周中的日無(wú)效,就是這個(gè)原因了。

6、MONTHS_BETWEEN(d1,d2) 返回d1與d2間的月份差,視d1,d2的值大小,結(jié)果可正可負(fù),當(dāng)然也有可能為0
例如:
SELECT months_between(SYSDATE, sysdate),
months_between(SYSDATE, add_months(sysdate, -1)),
months_between(SYSDATE, add_months(sysdate, 1))
FROM DUAL;

7、ROUND(d[,fmt]) 前面講數(shù)值型函數(shù)的時(shí)候介紹過(guò)ROUND,此處與上功能基本相似,不過(guò)此處操作的是日期。如果不指定fmt參數(shù),則默認(rèn)返回距離指定日期最近的日期。
例如:SELECT ROUND(SYSDATE,'HH24') FROM DUAL;

8、TRUNC(d[,fmt]) 與前面介紹的數(shù)值型TRUNC原理相同,不過(guò)此處也是操作的日期型。
例如:SELECT TRUNC(SYSDATE,'HH24') FROM DUAL;

(五).轉(zhuǎn)換函數(shù)(Conversion Functions)
轉(zhuǎn)換函數(shù)將指定字符從一種類型轉(zhuǎn)換為另一種,通常這類函數(shù)遵循如下慣例:函數(shù)名稱后面跟著待轉(zhuǎn)換類型以及輸出類型。

1、TO_CHAR() 本函數(shù)又可以分三小類,分別是
 轉(zhuǎn)換字符->字符TO_CHAR(c):將nchar,nvarchar2,clob,nclob類型轉(zhuǎn)換為char類型;
例如:SELECT TO_CHAR('AABBCC') FROM DUAL;

 轉(zhuǎn)換時(shí)間->字符TO_CHAR(d[,fmt]):將指定的時(shí)間(data,timestamp,timestamp with time zone)按照指定格式轉(zhuǎn)換為varchar2類型;
例如:SELECT TO_CHAR(sysdate,'yyyy-mm-dd hh24:mi:ss') FROM DUAL;

 轉(zhuǎn)換數(shù)值->字符TO_CHAR(n[,fmt]):將指定數(shù)值n按照指定格式fmt轉(zhuǎn)換為varchar2類型并返回;
例如:SELECT TO_CHAR(-100, 'L99G999D99MI') FROM DUAL;

2、TO_DATE(c[,fmt[,nls]]) 將char,nchar,varchar2,nvarchar2轉(zhuǎn)換為日期類型,如果fmt參數(shù)不為空,則按照f(shuō)mt中指定格式進(jìn)行轉(zhuǎn)換。注意這里的fmt參數(shù)。如果ftm為'J'則表示按照公元制(Julian day)轉(zhuǎn)換,c則必須為大于0并小于5373484的正整數(shù)。
例如:
SELECT TO_DATE(2454336, 'J') FROM DUAL;
SELECT TO_DATE('2007-8-23 23:25:00', 'yyyy-mm-dd hh24:mi:ss') FROM DUAL;

為什么公元制的話,c的值必須不大于5373484呢?因?yàn)镺racle的DATE類型的取值范圍是公元前4712年1月1日至公元9999年12月31日??纯聪旅孢@個(gè)語(yǔ)句:
SELECT TO_CHAR(TO_DATE('9999-12-31','yyyy-mm-dd'),'j') FROM DUAL;

3、TO_NUMBER(c[,fmt[,nls]]) 將char,nchar,varchar2,nvarchar2型字串按照f(shuō)mt中指定格式轉(zhuǎn)換為數(shù)值類型并返回。
例如:SELECT TO_NUMBER('-100.00', '9G999D99') FROM DUAL;

(六).其它輔助函數(shù)(Miscellaneous Single-Row Functions)

1、DECODE(exp,s1,r1,s2,r2..s,r[,def]) 可以把它理解成一個(gè)增強(qiáng)型的if else,只不過(guò)它并不通過(guò)多行語(yǔ)句,而是在一個(gè)函數(shù)內(nèi)實(shí)現(xiàn)if else的功能。
exp做為初始參數(shù)。s做為對(duì)比值,相同則返回r,如果s有多個(gè),則持續(xù)遍歷所有s,直到某個(gè)條件為真為止,否則返回默認(rèn)值def(如果指定了的話),如果沒有默認(rèn)值,并且前面的對(duì)比也都沒有為真,則返回空。
毫無(wú)疑問(wèn),decode是個(gè)非常重要的函數(shù),在實(shí)現(xiàn)行轉(zhuǎn)列等功能時(shí)都會(huì)用到,需要牢記和熟練使用。

例如:select decode('a2','a1','true1','a2','true2','default') from dual;

2、GREATEST(n1,n2,...n) 返回序列中的最大值
例如:SELECT GREATEST(15,5,75,8) "Greatest" FROM DUAL;

3、LEAST(n1,n2....n) 返回序列中的最小值
例如:SELECT LEAST(15,5,75,8) LEAST FROM DUAL;

4、NULLIF(c1,c2)
Nullif也是個(gè)很有意思的函數(shù)。邏輯等價(jià)于:CASE WHEN c1 = c2 THEN NULL ELSE c1 END
例如:SELECT NULLIF('a','b'),NULLIF('a','a') FROM DUAL;

5、NVL(c1,c2) 邏輯等價(jià)于IF c1 is null THEN c2 ELSE c1 END。c1,c2可以是任何類型。如果兩者類型不同,則oracle會(huì)自動(dòng)將c2轉(zhuǎn)換為c1的類型。
例如:SELECT NVL(null, '12') FROM DUAL;

6、NVL2(c1,c2,c3) 大家可能都用到nvl,但你用過(guò)nvl2嗎?如果c1非空則返回c2,如果c1為空則返回c3
例如:select nvl2('a', 'b', 'c') isNull,nvl2(null, 'b', 'c') isNotNull from dual;

7、SYS_CONNECT_BY_PATH(col,c) 該函數(shù)只能應(yīng)用于樹狀查詢。返回通過(guò)c1連接的從根到節(jié)點(diǎn)的路徑。該函數(shù)必須與connect by 子句共同使用。
例如:
create table tmp3(
rootcol varchar2(10),
nodecol varchar2(10)
);

insert into tmp3 values ('','a001');
insert into tmp3 values ('','b001');
insert into tmp3 values ('a001','a002');
insert into tmp3 values ('a002','a004');
insert into tmp3 values ('a001','a003');
insert into tmp3 values ('a003','a005');
insert into tmp3 values ('a005','a008');
insert into tmp3 values ('b001','b003');
insert into tmp3 values ('b003','b005');

select lpad(' ', level*10,'=') ||'>'|| sys_connect_by_path(nodecol,'/')
from tmp3
start with rootcol = 'a001'
connect by prior nodecol =rootcol;

8、SYS_CONTEXT(c1,c2[,n]) 將指定命名空間c1的指定參數(shù)c2的值按照指定長(zhǎng)度n截取后返回。
Oracle9i提供內(nèi)置了一個(gè)命名空間USERENV,描述了當(dāng)前session的各項(xiàng)信息,其擁有下列參數(shù):
 CURRENT_SCHEMA:當(dāng)前模式名;
 CURRENT_USER:當(dāng)前用戶;
 IP_ADDRESS:當(dāng)前客戶端IP地址;
 OS_USER:當(dāng)前客戶端操作系統(tǒng)用戶;
等等數(shù)十項(xiàng),更詳細(xì)的參數(shù)列還請(qǐng)大家直接參考Oracle Online Documents

例如:SELECT SYS_CONTEXT('USERENV', 'SESSION_USER') FROM DUAL;
注:N表示數(shù)字型,C表示字符型,D表示日期型,[]表示內(nèi)中參數(shù)可被忽略,fmt表示格式。

單值函數(shù)在查詢中返回單個(gè)值,可被應(yīng)用到select,where子句,start with以及connect by 子句和having子句。
(一).數(shù)值型函數(shù)(Number Functions)
數(shù)值型函數(shù)輸入數(shù)字型參數(shù)并返回?cái)?shù)值型的值。多數(shù)該類函數(shù)的返回值支持38位小數(shù)點(diǎn),諸如:COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, and TANH 支持36位小數(shù)點(diǎn)。ACOS, ASIN, ATAN, and ATAN2支持30位小數(shù)點(diǎn)。

1、ABS(n) 返回?cái)?shù)字的絕對(duì)值
例如:SELECT ABS(-1000000.01) FROM DUAL;

2、COS(n) 返回n的余弦值
例如:SELECT COS(-2) FROM DUAL;

3、ACOS(n) 反余弦函數(shù),n between -1 and 1,返回值between 0 and pi。
例如:SELECT ACOS(0.9) FROM DUAL;

4、BITAND(n1,n2) 位與運(yùn)算,這個(gè)太有意思了,雖然沒想到可能用到哪里,詳細(xì)說(shuō)明一下:
假設(shè)3,9做位與運(yùn)算,3的二進(jìn)制形式為:0011,9的二進(jìn)制形式為:1001,則結(jié)果是0001,轉(zhuǎn)換成10進(jìn)制數(shù)為1。
例如:SELECT BITAND(3,9) FROM DUAL;

5、CEIL(n) 返回大于或等于n的最小的整數(shù)值
例如:SELECT ceil(18.2) FROM DUAL;
考你一下,猜猜ceil(-18.2)的值會(huì)是什么呢

6、FLOOR(n) 返回小于等于n的最大整數(shù)值
例如:SELECT FLOOR(2.2) FROM DUAL;
再猜猜floor(-2.2)的值會(huì)是什么呢

7、BIN_TO_NUM(n1,n2,....n) 二進(jìn)制轉(zhuǎn)向十進(jìn)制
例如:SELECT BIN_TO_NUM(1),BIN_TO_NUM(1,0),BIN_TO_NUM(1,1) FROM DUAL;

8、SIN(n) 返回n的正玄值,n為弧度。
例如:SELECT SIN(10) FROM DUAL;

9、SINH(n) 返回n的雙曲正玄值,n為弧度。
例如:SELECT SINH(10) FROM DUAL;

10、ASIN(n) 反正玄函數(shù),n between -1 and 1,返回值between pi/2 and -pi/2。
例如:SELECT ASIN(0.8) FROM DUAL;

11、TAN(n) 返回n的正切值,n為弧度
例如:SELECT TAN(0.8) FROM DUAL;

12、TANH(n) 返回n的雙曲正切值,n為弧度
例如:SELECT TANH(0.8) FROM DUAL;

13、ATAN(n) 反正切函數(shù),n表示弧度,返回值between pi/2 and -pi/2。
例如:SELECT ATAN(-444444.9999999) FROM DUAL;

14、EXP(n) 返回e的n次冪,e = 2.71828183 ...
例如:SELECT EXP(3) FROM DUAL;

15、LN(n) 返回n的自然對(duì)數(shù),n>0
例如:SELECT LN(0.9) FROM DUAL;

16、LOG(n1,n2) 返回以n1為底n2的對(duì)數(shù),n1 >0 and not 1 ,n2>0
例如:SELECT LOG(1.1,2.2) FROM DUAL;

17、POWER(n1,n2) 返回n1的n2次方。n1,n2可以為任意數(shù)值,不過(guò)如果m是負(fù)數(shù),則n必須為整數(shù)
例如:SELECT POWER(2.2,2.2) FROM DUAL;

18、SIGN(n) 如果n0返回-1,如果n>0返回1,如果n=0返回0.
例如:SELECT SIGN(14),SIGN(-14),SIGN(0) FROM DUAL;

19、SQRT(n) 返回n的平方根,n為弧度。n>=0
例如:SELECT SQRT(0.1) FROM DUAL;

(二).字符型函數(shù)返回字符值(Character Functions Returning Character Values)
  該類函數(shù)返回與輸入類型相同的類型。
 返回的CHAR類型值長(zhǎng)度不超過(guò)2000字節(jié);
 返回的VCHAR2類型值長(zhǎng)度不超過(guò)4000字節(jié);
如果上述應(yīng)返回的字符長(zhǎng)度超出,oracle并不會(huì)報(bào)錯(cuò)而是直接截?cái)嘀磷畲罂芍С珠L(zhǎng)度返回。

 返回的CLOB類型值長(zhǎng)度不超過(guò)4G;
對(duì)于CLOB類型的函數(shù),如果返回值長(zhǎng)度超出,oracle不會(huì)返回任何錯(cuò)誤而是直接拋出錯(cuò)誤。

1、CHR(N[ USING NCHAR_CS]) 返回指定數(shù)值在當(dāng)前字符集中對(duì)應(yīng)的字符
例如:SELECT CHR(95) FROM DUAL;

2、CONCAT(c1,c2) 連接字符串,等同于||
例如:SELECT concat('aa','bb') FROM DUAL;

3、INITCAP(c) 將字符串中單詞的第一個(gè)字母轉(zhuǎn)換為大寫,其它則轉(zhuǎn)換為小寫
例如:SELECT INITCAP('whaT is this') FROM DUAL;

4、NLS_INITCAP(c) 返回指定字符串,并將字符串中第一個(gè)字母變大寫,其它字母變小寫
例如:SELECT NLS_INITCAP('中華miNZHu') FROM DUAL;
它還具有一個(gè)參數(shù):Nlsparam用來(lái)指定排序規(guī)則,可以忽略,默認(rèn)狀態(tài)該參數(shù)為當(dāng)前session的排序規(guī)則。

(三).字符型函數(shù)返回?cái)?shù)字值(Character Functions Returning Number Values)
本類函數(shù)支持所有的數(shù)據(jù)類型
1、ASCII(c) 與chr函數(shù)的用途剛剛相反,本函數(shù)返回指定字符在當(dāng)前字符集下對(duì)應(yīng)的數(shù)值。
例如:SELECT ASCII('_') FROM DUAL;

(四).日期函數(shù)(Datetime Functions)
本類函數(shù)中,除months_between返回?cái)?shù)值外,其它都將返回日期。
1、CURRENT_TIMESTAMP([n]) 返回當(dāng)前session所在時(shí)區(qū)的日期和時(shí)間。n表示毫秒級(jí)的精度,不大于6
例如:SELECT CURRENT_TIMESTAMP(3) FROM DUAL;

2、LOCALTIMESTAMP([n]) 與上同,返回當(dāng)前session所在時(shí)區(qū)的日期和時(shí)間。n表示毫秒級(jí)的精度,不大于6
例如:SELECT LOCALTIMESTAMP(3) FROM DUAL;

3、SYSTIMESTAMP([n]) 與上同,返回當(dāng)前數(shù)據(jù)庫(kù)所在時(shí)區(qū)的日期和時(shí)間,n表示毫秒級(jí)的精度,>0 and 6
例如:SELECT SYSTIMESTAMP(4) FROM DUAL;

4、DBTIMEZONE 返回?cái)?shù)據(jù)庫(kù)的當(dāng)前時(shí)區(qū)
例如:SELECT DBTIMEZONE FROM DUAL;

5、SESSIONTIMEZONE 返回當(dāng)前session所在時(shí)區(qū)
例如:SELECT SESSIONTIMEZONE FROM DUAL;

6、EXTRACT(key from date) key=(year,month,day,hour,minute,second) 從指定時(shí)間提到指定日期列
例如:SELECT EXTRACT(year from sysdate) FROM DUAL;

7、TO_TIMESTAMP(c1[,fmt]) 將指定字符按指定格式轉(zhuǎn)換為timestamp格式。
例如:SELECT TO_TIMESTAMP('2007-8-22', 'YYYY-MM-DD HH:MI:SS') FROM DUAL;

(五).轉(zhuǎn)換函數(shù)(Conversion Functions)
轉(zhuǎn)換函數(shù)將指定字符從一種類型轉(zhuǎn)換為另一種,通常這類函數(shù)遵循如下慣例:函數(shù)名稱后面跟著待轉(zhuǎn)換類型以及輸出類型。

1、BIN_TO_NUM(n1,n2...n) 將一組位向量轉(zhuǎn)換為等價(jià)的十進(jìn)制形式。
例如:SELECT BIN_TO_NUM(1,1,0) FROM DUAL;

2、CAST(c as newtype) 將指定字串轉(zhuǎn)換為指定類型,基本只對(duì)字符類型有效,比如char,number,date,rowid等。此類轉(zhuǎn)換有一個(gè)專門的表列明了哪種類型可以轉(zhuǎn)換為哪種類型,此處就不作酹述。
例如:SELECT CAST('1101' AS NUMBER(5)) FROM DUAL;

3、CHARTOROWID(c) 將字符串轉(zhuǎn)換為rowid類型
例如:SELECT CHARTOROWID('A003D1ABBEFAABSAA0') FROM DUAL;

4、ROWIDTOCHAR(rowid) 轉(zhuǎn)換rowid值為varchar2類型。返回串長(zhǎng)度為18個(gè)字節(jié)。
例如:SELECT ROWIDTOCHAR(rowid) FROM DUAL;

5、TO_MULTI_BYTE(c) 將指定字符轉(zhuǎn)換為全角并返回char類型字串
例如:SELECT TO_MULTI_BYTE('ABC abc 中華') FROM DUAL;

6、TO_SINGLE_BYTE(c) 將指定字符轉(zhuǎn)換為半角并返回char類型字串
例如:SELECT TO_SINGLE_BYTE('ABC?。幔猓阒腥A') FROM DUAL;

(六).其它輔助函數(shù)(Miscellaneous Single-Row Functions)
1、COALESCE(n1,n2,....n) 返回序列中的第一個(gè)非空值
例如:SELECT COALESCE(null,5,6,null,9) FROM DUAL;

2、DUMP(exp[,fmt[,start[,length]]])
dump是個(gè)功能非常強(qiáng)悍的函數(shù),對(duì)于深入了解oracle存儲(chǔ)的人而言相當(dāng)有用。所以對(duì)于我們這些僅僅只是應(yīng)用的人而言就不知道能將其應(yīng)用于何處了。此處僅介紹用法,不對(duì)其功能做深入分析。

如上所示,dump擁有不少參數(shù)。其本質(zhì)是以指定格式,返回指定長(zhǎng)度的exp的內(nèi)部表示形式的varchar2值。fmt含4種格式:8||10||16||17,分別表示8進(jìn)制,10進(jìn)制,16進(jìn)制和單字符,默認(rèn)為10進(jìn)制。start參數(shù)表示開始位置,length表示以,分隔的字串?dāng)?shù)。
例如:SELECT DUMP('abcdefg',17,2,4) FROM DUAL;

3、EMPTY_BLOB,EMPTY_CLOB 這兩個(gè)函數(shù)都是返回空l(shuí)ob類型,通常被用于insert和update等語(yǔ)句以初始化lob列,或者將其置為空。EMPTY表示LOB已經(jīng)被初始化,只不過(guò)還沒有用來(lái)存儲(chǔ)數(shù)據(jù)。

4、NLS_CHARSET_NAME(n) 返回指定數(shù)值對(duì)應(yīng)的字符集名稱。
例如:SELECT NLS_CHARSET_NAME(1) FROM DUAL;

5、NLS_CHARSET_ID(c) 返回指定字符對(duì)應(yīng)的字符集id。
例如:SELECT NLS_CHARSET_ID('US7ASCII') FROM DUAL;

6、NLS_CHARSET_DECL_LEN(n1,n2) 返回一個(gè)NCHAR值的聲明寬度(以字符為單位).n1是該值以字節(jié)為單位的長(zhǎng)度,n2是該值的字符集ID
例如:SELECT NLS_CHARSET_DECL_LEN(100, nls_charset_id('US7ASCII')) FROM DUAL;

7、SYS_EXTRACT_UTC(timestamp) 返回標(biāo)準(zhǔn)通用時(shí)間即格林威治時(shí)間。
例如:SELECT SYS_EXTRACT_UTC(current_timestamp) FROM DUAL;

8、SYS_TYPEID(object_type) 返回對(duì)象類型對(duì)應(yīng)的id。
例如:這個(gè)這個(gè),沒有建立過(guò)自定義對(duì)象,咋做示例?

9、UID 返回一個(gè)唯一標(biāo)識(shí)當(dāng)前數(shù)據(jù)庫(kù)用戶的整數(shù)。
例如:SELECT UID FROM DUAL;

10、USER 返回當(dāng)前session用戶
例如:SELECT USER FROM DUAL;

11、USERENV(c) 該函數(shù)用來(lái)返回當(dāng)前session的信息,據(jù)oracle文檔的說(shuō)明,userenv是為了保持向下兼容的遺留函數(shù)。oracle公司推薦你使用sys_context函數(shù)調(diào)用USERENV命名空間來(lái)獲取相關(guān)信息,所以大家了解下就行了。
例如:SELECT USERENV('LANGUAGE') FROM DUAL;

12、VSIZE(c) 返回c的字節(jié)數(shù)。
例如:SELECT VSIZE('abc中華') FROM DUAL;
您可能感興趣的文章:
  • oracle中110個(gè)常用函數(shù)介紹
  • 常用Oracle分析函數(shù)大全
  • Oracle計(jì)算時(shí)間差常用函數(shù)
  • ORACLE 常用函數(shù)總結(jié)(80個(gè))
  • oracle常用函數(shù)匯總(分享)
  • SQLServer與Oracle常用函數(shù)實(shí)例對(duì)比匯總
  • Oracle常用函數(shù)Trunc及Trunc函數(shù)用法講解
  • oracle中的一些常用函數(shù)及示例

標(biāo)簽:衢州 包頭 通遼 淮北 溫州 定西 衡水 潮州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ORACLE常用數(shù)值函數(shù)、轉(zhuǎn)換函數(shù)、字符串函數(shù)》,本文關(guān)鍵詞  ORACLE,常用,數(shù)值,函數(shù),轉(zhuǎn)換,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ORACLE常用數(shù)值函數(shù)、轉(zhuǎn)換函數(shù)、字符串函數(shù)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于ORACLE常用數(shù)值函數(shù)、轉(zhuǎn)換函數(shù)、字符串函數(shù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    深夜福利在线观看直播| 国产三级国产精品国产专区50| 精品欧美午夜寂寞影院| 91在线国内视频| xxxxwww一片| 91tv亚洲精品香蕉国产一区| 麻豆网在线观看| 精品国产乱码久久久久久牛牛| 日韩精品中文字幕在线不卡尤物| 精品国产亚洲日本| 狠狠色henhense| 欧美日韩精品二区第二页| 亚洲欧美一二三区| 亚洲a成人v| 欧美在线激情网| 国产精品专区免费| 成人永久看片免费视频天堂| 欧美疯狂xxxx大交乱88av| 精品视频一区在线| 日韩在线观看免费| 久久久久综合| 精品产品国产在线不卡| 色哟哟在线观看视频| 久久激情五月丁香伊人| 超碰97久久| 国产熟女高潮一区二区三区| 三级在线观看视频| 国产亚洲色婷婷久久99精品| 添女人荫蒂视频| 亚洲的天堂在线中文字幕| 99re6在线视频| 青青草手机在线观看| 欧美日韩精品一区二区三区蜜桃| 手机在线观看免费av| 国产欧美日韩专区发布| 国产精品一区二区三区观看| 美女脱光内衣内裤视频久久影院| 国产精品探花一区二区在线观看| 国产精品极品美女在线观看免费| 国产精品久久99| 日产中文字幕在线精品一区| av资源网在线播放| 一本岛在线视频| 欧美手机视频| 成人福利视频| 懂色一区二区三区av片| 午夜欧美大尺度福利影院在线看| 又大又长粗又爽又黄少妇视频| 色综合 综合色| 日本久久精品电影| 最新中文字幕在线观看| 国产情侣在线播放| 自拍视频一区二区三区| 生活片a∨在线观看| 日本网址在线观看| 国产综合在线视频| 免费精品国产自产拍在| 自拍亚洲色图| 午夜国产视频| 99成人在线视频| 国产精品一 二 三| 999久久欧美人妻一区二区| 日韩精品欧美在线| 国产毛片久久久久久久| 久久伊人蜜桃av一区二区| 超碰91人人草人人干| 福利视频网址导航| 亚洲美女性视频| 久久国产视频播放| 自慰无码一区二区三区| 一个色妞综合视频在线观看| 极品白嫩的小少妇| 国产精品调教| 欧美色999| 奇米影视第四色7777| 天天干天天操天天拍| 精品无人区乱码1区2区3区在线| 一区二区三区四区不卡在线| 97精品在线视频| 色综合视频一区二区三区日韩| 精品中文字幕av| 你懂的免费在线观看| 亚洲天堂成人在线视频| 日韩资源在线| 色屁屁一区二区| 夜先锋av资源| 高清av一区二区三区| 免费成人进口网站| 成年人视频免费在线观看| 日韩欧美一级二级三级久久久| 草莓视频末满18勿| 亚洲最大的成人av| 日本www.色| 亚洲成人av综合| 精品国产亚洲在线| 亚洲一区二区三区综合| 91精品视频免费观看| 日本搞黄视频| 欧美精品videosbestsex另类| 欧美激情办公室videoshd| 最新欧美精品一区二区三区| 成人一级片网站| 另类小说视频一区二区| 亚洲一卡久久| 亚洲资源网站| 成人毛片18女人毛片| 天堂av.com| 欧美大香线蕉线伊人久久国产精品| 国产高清日韩| 青青久久av北条麻妃海外网| 国产精品网站入口| 亚洲精品久久久久久宅男| 91九色porny在线| 亚洲性人人天天夜夜摸| 美国av一区二区三区| 制服丝袜av成人在线看| 久草免费在线视频| 国产伦精品一区二区三区高清| 日本不卡在线| 超碰在线视屏| 免费观看一级特黄欧美大片| 国产白丝袜美女久久久久| 26uuu亚洲伊人春色| 亚洲а∨精品天堂在线| 欧美一区激情视频在线观看| 国产人妖在线播放| 污污免费在线观看| 中文字幕制服丝袜一区二区三区| 四虎8848精品成人免费网站| 色婷婷综合中文久久一本| 性感av在线播放| 水蜜桃色314在线观看| 三级a三级三级三级a十八发禁止| 西野翔中文久久精品国产| 国产精品秘入口| 成人avav影音| 国产吧在线视频| 国产又粗又猛又爽又黄| 国产第一页第二页| 国产激情一区二区三区| 亚洲va欧美va国产va天堂影院| 精品国产中文字幕第一页| 中文字幕制服诱惑| 国产二级片在线| 亚洲麻豆精品| 久久中文免费视频| 我不卡影院28| 一本到高清视频免费精品| 欧美一进一出视频| 国产微拍精品一区| 秋霞影视一区二区三区| 欧美日韩一区视频| 免费av网站在线看| 高清av一区| 国产精品亚洲电影久久成人影院| 欧美性猛交xxxx免费看蜜桃| 亚洲激情不卡| 18岁以下禁止观看的美女视频| 欧美国产视频在线| 欧美三级黄美女| 九九热在线视频免费观看| 国产社区精品视频| 亚洲福利视频网| 在线丝袜欧美日韩制服| 成人午夜av在线| 亚洲免费成人在线| 国产66精品久久久久999小说| 国产欧美一区二区在线播放| 裸体一区二区| 久久亚洲图片| 欧美色图亚洲天堂| 美女在线观看www| 国产精品成人无码免费| 亚洲一区免费网站| 丰满少妇高潮在线观看| 欧美日韩综合视频| 欧美综合视频| 成人亚洲精品久久久久软件| 日本加勒比高清在线| 免费日韩一级片| 国产精品亚洲一区二区三区在线观看| 激情视频综合网| 亚洲国产激情一区二区三区| 国内精品久久久久久影院8f| 日韩xxxxxxxxx| 在线中文资源天堂| 又紧又大又爽精品一区二区| 日本一区免费| 欧美日韩亚洲国产成人| 欧美日韩激情一区二区三区| 亚瑟一区二区三区四区| 色欲av无码一区二区三区| 91国产丝袜在线放| 97av免费视频| 国产精品影院在线观看| 亚洲小说区图片区都市| 久久久久一区二区三区| 男人天堂网在线观看| 91免费在线观看网站| 欧美富婆性猛交| 一区一区三区| 一区三区视频| 日本一区二区动态图| 亚洲激情视频网站| 日韩精品视频在线观看免费| 亚洲卡通欧美制服中文| 波多野结衣三级在线| 国产精品伦一区二区| 欧美高清视频手机在在线| 自拍视频在线免费观看| 日韩极品在线| 天堂在线www天堂中文在线| 无码人妻精品一区二区| www.色国产| 色一情一乱一乱一区91| 午夜亚洲国产au精品一区二区| 欧美一区二区.| 国产精品片aa在线观看| 天天干,天天操,天天射| 91精品国产丝袜白色高跟鞋| 久久久久网址| 国产福利精品一区二区三区| 欧美激情亚洲色图| 99鲁鲁精品一区二区三区| 国产欧美一区二区视频| 超碰在线免费看| 国产综合香蕉五月婷在线| 男人天堂v视频| 亚洲一区二区三区免费观看| 91国产成人在线| 四虎精品一区二区| av日韩在线网站| 欧美日韩精品欧美日韩精品一综合| 91精品国产高清一区二区三蜜臀| 日本三级电影免费观看| 国产精品免费区二区三区观看| 欧美日韩ab片| 日韩免费av网站| 欧美色18zzzzxxxxx| www.av在线播放| 亚洲va欧美va人人爽成人影院| 影音先锋在线中文字幕| 伊人久久大香线蕉av不卡| 日本一区二区三区免费看| 中字幕一区二区三区乱码| 两个人看的免费完整在线观看| 亚洲午夜无码久久久久| 国产在线观看a视频| 日本孕妇大胆孕交无码| 日韩精品一级毛片在线播放| 99高清视频有精品视频| 又色又爽的视频| 欧美中日韩免费视频| 一级特黄a大片免费| 成人日韩av| 国产精品999999| 欧美日韩一区二区三区四区五区六区| 国产精品精品久久久久久| 中文久久久久久| 亚洲美女在线国产| 校园春色 亚洲色图| 在线观看精品视频一区二区三区| 国产福利一区二区三区在线观看| 无码精品人妻一区二区| 国产日本一区二区| 日本女优爱爱视频| 97福利一区二区| 深夜激情久久| 精品国产一区二区三区四区精华| 日本一道本视频| 好吊色在线观看| 一级黄色大片儿| 亚洲精品免费一区亚洲精品免费精品一区| 日韩精品一区二区三区色偷偷| 麻豆一区二区在线观看| 在线国产精品一区| 五月天丁香视频| 青青青视频在线免费观看| 一级国产黄色片| 亚洲日本免费电影| 亚洲精品乱码久久久久久蜜桃麻豆| 久久色视频免费观看| 青青视频一区二区| 国产精品久久一区主播| 久久激情视频免费观看| 亚洲柠檬福利资源导航| 亚洲欧美另类在线观看| 久久久久久久久久看片| 免费网站看v片在线a| 丰满岳乱妇国产精品一区| 日韩精品一区二区三区四区五区| 国产精品一区二区三区美女| 欧美性精品220| 国产中文在线观看| 四季av在线一区二区三区| 亚洲欧美在线免费观看| 影音先锋日韩av| 久久综合久久网| 亚洲手机成人高清视频| 2017亚洲天堂1024| 欧美美女色图| 日本亚洲天堂网| 日韩欧美另类中文字幕| 草民午夜欧美限制a级福利片| 亚洲国产福利在线| 丁香五精品蜜臀久久久久99网站| 国产精品久久久久久婷婷天堂| 亚洲精品一区二区三区在线观看| 中文字幕亚洲欧美日韩高清| 奇米888四色在线精品| 国产丝袜在线观看视频| 成人免费毛片嘿嘿连载视频…| 久久香蕉精品视频| 成人免费观看在线观看| 99久久婷婷国产综合精品电影| 中文字幕一区二区三区四区久久| 91欧美极品| 成人午夜国产福到在线| 69xxxx国产| 欧美日韩在线一区二区| 国产激情第一页| 亚洲一区自拍| 日韩性生活视频| 日韩情涩欧美日韩视频| 亚洲欧洲成人精品av97| 亚洲欧洲一区二区福利| 国产精品私人影院| 亚洲AV成人无码网站天堂久久|