日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Oracle字符串函數(shù)

 aaie_ 2012-04-17


平常我們用Oracle主要有兩種字符串類型
1.char始終為固定的長(zhǎng)度,如果設(shè)置了長(zhǎng)度小于char列的值,則Oracle會(huì)自動(dòng)用空格填充的。當(dāng)比較char時(shí),Oracle用空格將其填充為等長(zhǎng),再進(jìn)行比較。
2.VarChar2數(shù)據(jù)類型為可變長(zhǎng)度,雖然與VarChar數(shù)據(jù)類型是同義的,但在今后的Oracle版本中也許會(huì)有變化,所以應(yīng)該避免使用VarChar,優(yōu)先使用VarChar2。
固定長(zhǎng)度的字符串字段使用Char,而其他所有的字符串字段都應(yīng)使用VarChar2.

下面列出部分Oracle針對(duì)字符串操作的一些函數(shù),以下函數(shù)可以使用在字符串上,也可以使用在列名上:
1.LOWER(string) 將輸入的字符串轉(zhuǎn)換成小寫
2.UPPER(string) 將輸入的字符串轉(zhuǎn)換成大寫
3.INITCAP(string) 將輸入的字符串單詞的首字母轉(zhuǎn)換成大寫。PS:如果不是兩個(gè)字母連在一起,則認(rèn)為是新的單詞,例:a_b a,b  a b  類似前面這些情況,都a和b都會(huì)轉(zhuǎn)換成大寫
4.連接符(||),將兩個(gè)字符串用||連接起來,除此之外還可以使用Concat函數(shù)來連接字符串。例:select CONCAT(City,country) from Table
5.LPAD和RPAD,填充函數(shù),這是兩個(gè)十分相似的函數(shù),使用方式完全一樣。允許在列的左[右]邊填充一組字符。例:RPAD(city,20,'.'),如果ciy的值沒有小于長(zhǎng)度20的話,則用'.'在右邊補(bǔ)齊,補(bǔ)到20個(gè),如果是用空格補(bǔ)齊,看上去就是像左對(duì)齊一樣。
6.LTRIM,RTRIM和TRIM,他們的作用是從字符串的左邊,右邊,左右兩邊刪除不需要的字符,默認(rèn)時(shí)刪除空格。
格式:RTRIM、LTRIM(字符串,'刪除字符集') 第一個(gè)參數(shù)就是要進(jìn)行刪除的字符,第二個(gè)參數(shù)是一個(gè)字符集來的,如果填寫的是'AB',Oracle會(huì)認(rèn)為是A和B,然后反復(fù)檢查字符串的右端,直到字符串中的每個(gè)字符都被刪除了,也就是說,直到遇到被刪除字符集中未出現(xiàn)的第一個(gè)字符時(shí),才停止刪除。這樣講可能有點(diǎn)不是很明白,看下面例子
原數(shù)據(jù)
1 AAA.
2 AAA."
3 AA.AAB
RTRIM(name,'.B"')
1 AAA
2 AAA
3 AA.AA
如果覺得不夠明白的話,自己試多幾次就明白了!我也覺得講得好像不是很清楚一樣!
TRIM格式有點(diǎn)不一樣,直接看例子吧 select trim('A' from 列名) from tableName 或者trim(leading 'A' from 列名)或者trim(trailing 'A' from 列名) 等價(jià)于LTRIM和RTRIM函數(shù)一樣,其實(shí)TRIM函數(shù)就只是為了簡(jiǎn)化代碼而以。
7.LENGTH 該函數(shù)很簡(jiǎn)單,就是告訴用戶一個(gè)字符串有多長(zhǎng),即字符串中有多少個(gè)字符,該函數(shù)本身并不是很好用,但可以做為其它函數(shù)的一部分,用于計(jì)算表格需要多少空格,或者做為orderby 子句的一部分。PS:您不能對(duì)一個(gè)使用LONG數(shù)據(jù)類型的列使用LENGTH之類的函數(shù)。
8.SUBSTR(string,start [,count]) 該函數(shù)告訴oracle提取出string一個(gè)子集,start開始位置,count提取長(zhǎng)度,不指定count時(shí),默認(rèn)提取到該字符串的尾部。
  start同時(shí)也可以指定為負(fù)數(shù),指定為正數(shù)的時(shí)候是從字符串的起始位置開始算(左邊),指定負(fù)數(shù)時(shí),是從末尾位置算(右邊)。PS:負(fù)數(shù)不能使用于Char數(shù)據(jù)類型,因?yàn)镃har是固定長(zhǎng)度的,   所以將使用空格填充他們的值,直到擴(kuò)展到列的全長(zhǎng)。
9.INSTR 返回指定的字符串所在的位置
  INSTR(string,set[,start [,occurrence ] ] ) 如果指定start,oracle則跳過前面所有字符串到該位置開始搜索,occurence,是強(qiáng)迫instr跳過前幾次與字符串匹配,給出下一次匹配的位置,如果occurence指定3,那就是匹配第三次的位置了。 例 instr('ABACAAA','A',2,2) 從ABACAAA中匹配A這個(gè)字符串,從2個(gè)位置開始匹配,匹配第2次A所在的位置。PS:如果set中不止有一個(gè)字符而是有幾個(gè)字符組成的,則INSTR給出該字符集中的第一個(gè)字符的位置。
10.Chr和ascii函數(shù)在即席查詢中很少使用。Chr把數(shù)值轉(zhuǎn)換成等價(jià)的ascii字符串 例:select chr(70) from dual
        ascii函數(shù)執(zhí)行的結(jié)果剛好是相反的,傳遞給他字符串,它將轉(zhuǎn)換成對(duì)應(yīng)的數(shù)值(只轉(zhuǎn)換第一個(gè)字符串),如果需要同時(shí)轉(zhuǎn)換多個(gè)字符串可以使用DUMP函數(shù) DUMP(string)

PS:INSTR,REPLACE和SUBSTR的功能已經(jīng)得到擴(kuò)展,可以支持正則表達(dá)式。

通過以上函數(shù)可以單獨(dú)使用或者組合使用,這是一個(gè)簡(jiǎn)單的過程,即將簡(jiǎn)單的邏輯步驟組合起來完成非常復(fù)雜的任務(wù)。

后續(xù)應(yīng)該還會(huì)有一些Oracle方面的日志記錄吧。。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多