這些函數全都接收的是字符族類(lèi)型的參數(CHR除外)并且返回字符值.
除了特別說(shuō)明的之外,這些函數大部分返回VARCHAR2類(lèi)型的數值.
字符函數的返回類(lèi)型所受的限制和基本數據庫類(lèi)型所受的限制是相同的。
字符型變量存儲的最大值:
VARCHAR2數值被限制為2000字符(ORACLE 8中為4000字符)
CHAR數值被限制為255字符(在ORACLE8中是2000)
long類(lèi)型為2GB
Clob類(lèi)型為4GB
1、CHR
語(yǔ)法: chr(x)
功能:返回在數據庫字符集中與X擁有等價(jià)數值的字符。CHR和ASCII是一對反函數。經(jīng)過(guò)CHR轉換后的字符再經(jīng)過(guò)ASCII轉換又得到了原來(lái)的字
符。
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
2、CONCAT
語(yǔ)法: CONCAT(string1,string2)
功能:返回string1,并且在后面連接string2。
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
3、INITCAP
語(yǔ)法:INITCAP(string)
功能:返回字符串的每個(gè)單詞的第一個(gè)字母大寫(xiě)而單詞中的其他字母小寫(xiě)的string。單詞是用.空格或給字母數字字符進(jìn)行分隔。不是字母的
字符不變動(dòng)。
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
4、LTRIM
語(yǔ)法:LTRIM(string1,string2)
功能:返回刪除從左邊算起出現在string2中的字符的string1。String2被缺省設置為單個(gè)的空格。數據庫將掃描string1,從最左邊開(kāi)始。當
遇到不在string2中的第一個(gè)字符,結果就被返回了。LTRIM的行為方式與RTRIM很相似。
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
5、NLS_INITCAP
語(yǔ)法:NLS_INITCAP(string[,nlsparams])
功能:返回字符串每個(gè)單詞第一個(gè)字母大寫(xiě)而單詞中的其他字母小寫(xiě)的string,nlsparams
指定了不同于該會(huì )話(huà)缺省值的不同排序序列。如果不指定參數,則功能和INITCAP相同。Nlsparams可以使用的形式是:
‘NLS_SORT=sort’
這里sort制訂了一個(gè)語(yǔ)言排序序列。
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
6、NLS_LOWER
語(yǔ)法:NLS_LOWER(string[,nlsparams])
功能:返回字符串中的所有字母都是小寫(xiě)形式的string。不是字母的字符不變。
Nlsparams參數的形式與用途和NLS_INITCAP中的nlsparams參數是相同的。如果nlsparams沒(méi)有被包含,那么NLS_LOWER所作的處理和
LOWER相同。
使用位置;過(guò)程性語(yǔ)句和SQL語(yǔ)句。
7、NLS_UPPER
語(yǔ)法:nls_upper(string[,nlsparams])
功能:返回字符串中的所有字母都是大寫(xiě)的形式的string。不是字母的字符不變。nlsparams參數的形式與用途和NLS_INITCAP中的相同。如果
沒(méi)有設定參數,則NLS_UPPER功能和UPPER相同。
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
8、REPLACE
語(yǔ)法:REPLACE(string,search_str[,replace_str])
功能:把string中的所有的子字符串search_str用可選的replace_str替換,如果沒(méi)有指定replace_str,所有的string中的子字符串
search_str都將被刪除。REPLACE是TRANSLATE所提供的功能的一個(gè)子集。
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
9、RPAD
語(yǔ)法:RPAD(string1,x[,string2])
功能:返回在X字符長(cháng)度的位置上插入一個(gè)string2中的字符的string1。如果string2的長(cháng)度要比X字符少,就按照需要進(jìn)行復制。如果string2
多于X字符,則僅string1前面的X各字符被使用。如果沒(méi)有指定string2,那么使用空格進(jìn)行填充。X是使用顯示長(cháng)度可以比字符串的實(shí)際長(cháng)度
要長(cháng)。RPAD的行為方式與LPAD很相似,除了它是在右邊而不是在左邊進(jìn)行填充。
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
10、RTRIM
語(yǔ)法: RTRIM(string1,[,string2])
功能: 返回刪除從右邊算起出現在string1中出現的字符string2. string2被缺省設置為單個(gè)的空格.數據庫將掃描string1,從右邊開(kāi)始.當遇
到不在string2中的第一個(gè)字符,結果就被返回了RTRIM的行為方式與LTRIM很相似.
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
11、SOUNDEX
語(yǔ)法: SOUNDEX(string)
功能: 返回string的聲音表示形式.這對于比較兩個(gè)拼寫(xiě)不同但是發(fā)音類(lèi)似的單詞而言很有幫助.
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
12、SUBSTR
語(yǔ)法: SUBSTR(string,a[,b])
功能: 返回從字母為值a開(kāi)始b個(gè)字符長(cháng)的string的一個(gè)子字符串.如果a是0,那么它就被認為從第一個(gè)字符開(kāi)始.如果是正數,返回字符是從左
邊向右邊進(jìn)行計算的.如果b是負數,那么返回的字符是從string的末尾開(kāi)始從右向左進(jìn)行計算的.如果b不存在,那么它將缺省的設置為整個(gè)字符
串.如果b小于1,那么將返回NULL.如果a或b使用了浮點(diǎn)數,那么該數值將在處理進(jìn)行以前首先被卻為一個(gè)整數.
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
13、TRANSLATE
語(yǔ)法: TRANSLATE(string,from_str,to_str)
功能: 返回將所出現的from_str中的每個(gè)字符替換為to_str中的相應字符以后的string. TRANSLATE是REPLACE所提供的功能的一個(gè)超集.
如果from_str比to_str長(cháng),那么在from_str中而不在to_str中而外的字符將從string中被刪除,因為它們沒(méi)有相應的替換字符. to_str不能為空
.Oracle把空字符串認為是NULL,并且如果TRANSLATE中的任何參數為NULL,那么結果也是NULL.
使用位置:過(guò)程性語(yǔ)句和SQL語(yǔ)句。
14、UPPER
語(yǔ)法: UPPER(string)
功能: 返回大寫(xiě)的string.不是字母的字符不變.如果string是CHAR數據類(lèi)型的,那么結果也是CHAR類(lèi)型的.如果string是VARCHAR2類(lèi)型的,那么
結果也是VARCHAR2類(lèi)型的.
使用位置: 過(guò)程性語(yǔ)句和SQL語(yǔ)句。
字符函數——返回數字
這些函數接受字符參數回數字結果.參數可以是CHAR或者是VARCHAR2類(lèi)型的.盡管實(shí)際下許多結果都是整數值,但是返回結果都是簡(jiǎn)單的NUMBER
類(lèi)型的,沒(méi)有定義任何的精度或刻度范圍.
16、ASCII
語(yǔ)法: ASCII(string)
功能: 數據庫字符集返回string的第一個(gè)字節的十進(jìn)制表示.請注意該函數仍然稱(chēng)作為ASCII.盡管許多字符集不是7位ASCII.CHR和ASCII是互為
相反的函數.CHR得到給定字符編碼的響應字符. ASCII得到給定字符的字符編碼.
使用位置: 過(guò)程性語(yǔ)句和SQL語(yǔ)句。
17、INSTR
語(yǔ)法: INSTR(string1, string2[a,b])
功能: 得到在string1中包含string2的位置. string1時(shí)從左邊開(kāi)始檢查的,開(kāi)始的位置為a,如果a是一個(gè)負數,那么string1是從右邊開(kāi)始進(jìn)行
掃描的.第b次出現的位置將被返回. a和b都缺省設置為1,這將會(huì )返回在string1中第一次出現string2的位置.如果string2在a和b的規定下沒(méi)有
找到,那么返回0.位置的計算是相對于string1的開(kāi)始位置的,不管a和b的取值是多少.
使用位置: 過(guò)程性語(yǔ)句和SQL語(yǔ)句。
18、INSTRB
語(yǔ)法: INSTRB(string1, string2[a,[b]])
功能: 和INSTR相同,只是操作的對參數字符使用的位置的是字節.
使用位置: 過(guò)程性語(yǔ)句和SQL語(yǔ)句。
19、LENGTH
語(yǔ)法: LENGTH(string)
功能: 返回string的字節單位的長(cháng)度.CHAR數值是填充空格類(lèi)型的,如果string由數據類(lèi)型CHAR,它的結尾的空格都被計算到字符串長(cháng)度中間.
如果string是NULL,返回結果是NULL,而不是0.
使用位置: 過(guò)程性語(yǔ)句和SQL語(yǔ)句。
20、LENGTHB
語(yǔ)法: LENGTHB(string)
功能: 返回以字節為單位的string的長(cháng)度.對于單字節字符集LENGTHB和LENGTH是一樣的.
使用位置: 過(guò)程性語(yǔ)句和SQL語(yǔ)句。
21、NLSSORT
語(yǔ)法: NLSSORT(string[,nlsparams])
功能: 得到用于排序string的字符串字節.所有的數值都被轉換為字節字符串,這樣在不同數據庫之間就保持了一致性. Nlsparams的作用和
NLS_INITCAP中的相同.如果忽略參數,會(huì )話(huà)使用缺省排序.
使用位置: 過(guò)程性語(yǔ)句和SQL語(yǔ)句。
select substr(t.cm_node,0,instr(t.cm_node,'/',-1)) from cm_node t;