Oracle 存儲過程總結(jié) 二、字符串處理相關函數(shù)
更新時間:2009年07月07日 01:53:31 作者:
項目中有涉及存儲過程對字符串的處理,所以就將在網(wǎng)上查找到的資料匯總,做一個信息拼接式的總結(jié)。
以下信息均來自互聯(lián)網(wǎng),貼出來一則自己保存以待以后使用,一則供大家分享。
字符函數(shù)——返回字符值
這些函數(shù)全都接收的是字符族類型的參數(shù)(CHR除外)并且返回字符值.
除了特別說明的之外,這些函數(shù)大部分返回VARCHAR2類型的數(shù)值.
字符函數(shù)的返回類型所受的限制和基本數(shù)據(jù)庫類型所受的限制是相同的。
字符型變量存儲的最大值:
VARCHAR2數(shù)值被限制為2000字符(ORACLE 8中為4000字符)
CHAR數(shù)值被限制為255字符(在ORACLE8中是2000)
long類型為2GB
Clob類型為4GB
1、CHR
語法: chr(x)
功能:返回在數(shù)據(jù)庫字符集中與X擁有等價數(shù)值的字符。CHR和ASCII是一對反函數(shù)。經(jīng)過CHR轉(zhuǎn)換后的字符再經(jīng)過ASCII轉(zhuǎn)換又得到了原來的字
符。
使用位置:過程性語句和SQL語句。
2、CONCAT
語法: CONCAT(string1,string2)
功能:返回string1,并且在后面連接string2。
使用位置:過程性語句和SQL語句。
3、INITCAP
語法:INITCAP(string)
功能:返回字符串的每個單詞的第一個字母大寫而單詞中的其他字母小寫的string。單詞是用.空格或給字母數(shù)字字符進行分隔。不是字母的
字符不變動。
使用位置:過程性語句和SQL語句。
4、LTRIM
語法:LTRIM(string1,string2)
功能:返回刪除從左邊算起出現(xiàn)在string2中的字符的string1。String2被缺省設置為單個的空格。數(shù)據(jù)庫將掃描string1,從最左邊開始。當
遇到不在string2中的第一個字符,結(jié)果就被返回了。LTRIM的行為方式與RTRIM很相似。
使用位置:過程性語句和SQL語句。
5、NLS_INITCAP
語法:NLS_INITCAP(string[,nlsparams])
功能:返回字符串每個單詞第一個字母大寫而單詞中的其他字母小寫的string,nlsparams
指定了不同于該會話缺省值的不同排序序列。如果不指定參數(shù),則功能和INITCAP相同。Nlsparams可以使用的形式是:
‘NLS_SORT=sort'
這里sort制訂了一個語言排序序列。
使用位置:過程性語句和SQL語句。
6、NLS_LOWER
語法:NLS_LOWER(string[,nlsparams])
功能:返回字符串中的所有字母都是小寫形式的string。不是字母的字符不變。
Nlsparams參數(shù)的形式與用途和NLS_INITCAP中的nlsparams參數(shù)是相同的。如果nlsparams沒有被包含,那么NLS_LOWER所作的處理和
LOWER相同。
使用位置;過程性語句和SQL語句。
7、NLS_UPPER
語法:nls_upper(string[,nlsparams])
功能:返回字符串中的所有字母都是大寫的形式的string。不是字母的字符不變。nlsparams參數(shù)的形式與用途和NLS_INITCAP中的相同。如果
沒有設定參數(shù),則NLS_UPPER功能和UPPER相同。
使用位置:過程性語句和SQL語句。
8、REPLACE
語法:REPLACE(string,search_str[,replace_str])
功能:把string中的所有的子字符串search_str用可選的replace_str替換,如果沒有指定replace_str,所有的string中的子字符串
search_str都將被刪除。REPLACE是TRANSLATE所提供的功能的一個子集。
使用位置:過程性語句和SQL語句。
9、RPAD
語法:RPAD(string1,x[,string2])
功能:返回在X字符長度的位置上插入一個string2中的字符的string1。如果string2的長度要比X字符少,就按照需要進行復制。如果string2
多于X字符,則僅string1前面的X各字符被使用。如果沒有指定string2,那么使用空格進行填充。X是使用顯示長度可以比字符串的實際長度
要長。RPAD的行為方式與LPAD很相似,除了它是在右邊而不是在左邊進行填充。
使用位置:過程性語句和SQL語句。
10、RTRIM
語法: RTRIM(string1,[,string2])
功能: 返回刪除從右邊算起出現(xiàn)在string1中出現(xiàn)的字符string2. string2被缺省設置為單個的空格.數(shù)據(jù)庫將掃描string1,從右邊開始.當遇
到不在string2中的第一個字符,結(jié)果就被返回了RTRIM的行為方式與LTRIM很相似.
使用位置:過程性語句和SQL語句。
11、SOUNDEX
語法: SOUNDEX(string)
功能: 返回string的聲音表示形式.這對于比較兩個拼寫不同但是發(fā)音類似的單詞而言很有幫助.
使用位置:過程性語句和SQL語句。
12、SUBSTR
語法: SUBSTR(string,a[,b])
功能: 返回從字母為值a開始b個字符長的string的一個子字符串.如果a是0,那么它就被認為從第一個字符開始.如果是正數(shù),返回字符是從左
邊向右邊進行計算的.如果b是負數(shù),那么返回的字符是從string的末尾開始從右向左進行計算的.如果b不存在,那么它將缺省的設置為整個字符
串.如果b小于1,那么將返回NULL.如果a或b使用了浮點數(shù),那么該數(shù)值將在處理進行以前首先被卻為一個整數(shù).
使用位置:過程性語句和SQL語句。
13、TRANSLATE
語法: TRANSLATE(string,from_str,to_str)
功能: 返回將所出現(xiàn)的from_str中的每個字符替換為to_str中的相應字符以后的string. TRANSLATE是REPLACE所提供的功能的一個超集.
如果from_str比to_str長,那么在from_str中而不在to_str中而外的字符將從string中被刪除,因為它們沒有相應的替換字符. to_str不能為空
.Oracle把空字符串認為是NULL,并且如果TRANSLATE中的任何參數(shù)為NULL,那么結(jié)果也是NULL.
使用位置:過程性語句和SQL語句。
14、UPPER
語法: UPPER(string)
功能: 返回大寫的string.不是字母的字符不變.如果string是CHAR數(shù)據(jù)類型的,那么結(jié)果也是CHAR類型的.如果string是VARCHAR2類型的,那么
結(jié)果也是VARCHAR2類型的.
使用位置: 過程性語句和SQL語句。
字符函數(shù)——返回數(shù)字
這些函數(shù)接受字符參數(shù)回數(shù)字結(jié)果.參數(shù)可以是CHAR或者是VARCHAR2類型的.盡管實際下許多結(jié)果都是整數(shù)值,但是返回結(jié)果都是簡單的NUMBER
類型的,沒有定義任何的精度或刻度范圍.
16、ASCII
語法: ASCII(string)
功能: 數(shù)據(jù)庫字符集返回string的第一個字節(jié)的十進制表示.請注意該函數(shù)仍然稱作為ASCII.盡管許多字符集不是7位ASCII.CHR和ASCII是互為
相反的函數(shù).CHR得到給定字符編碼的響應字符. ASCII得到給定字符的字符編碼.
使用位置: 過程性語句和SQL語句。
17、INSTR
語法: INSTR(string1, string2[a,b])
功能: 得到在string1中包含string2的位置. string1時從左邊開始檢查的,開始的位置為a,如果a是一個負數(shù),那么string1是從右邊開始進行
掃描的.第b次出現(xiàn)的位置將被返回. a和b都缺省設置為1,這將會返回在string1中第一次出現(xiàn)string2的位置.如果string2在a和b的規(guī)定下沒有
找到,那么返回0.位置的計算是相對于string1的開始位置的,不管a和b的取值是多少.
使用位置: 過程性語句和SQL語句。
18、INSTRB
語法: INSTRB(string1, string2[a,[b]])
功能: 和INSTR相同,只是操作的對參數(shù)字符使用的位置的是字節(jié).
使用位置: 過程性語句和SQL語句。
19、LENGTH
語法: LENGTH(string)
功能: 返回string的字節(jié)單位的長度.CHAR數(shù)值是填充空格類型的,如果string由數(shù)據(jù)類型CHAR,它的結(jié)尾的空格都被計算到字符串長度中間.
如果string是NULL,返回結(jié)果是NULL,而不是0.
使用位置: 過程性語句和SQL語句。
20、LENGTHB
語法: LENGTHB(string)
功能: 返回以字節(jié)為單位的string的長度.對于單字節(jié)字符集LENGTHB和LENGTH是一樣的.
使用位置: 過程性語句和SQL語句。
21、NLSSORT
語法: NLSSORT(string[,nlsparams])
功能: 得到用于排序string的字符串字節(jié).所有的數(shù)值都被轉(zhuǎn)換為字節(jié)字符串,這樣在不同數(shù)據(jù)庫之間就保持了一致性. Nlsparams的作用和
NLS_INITCAP中的相同.如果忽略參數(shù),會話使用缺省排序.
使用位置: 過程性語句和SQL語句。
字符函數(shù)——返回字符值
這些函數(shù)全都接收的是字符族類型的參數(shù)(CHR除外)并且返回字符值.
除了特別說明的之外,這些函數(shù)大部分返回VARCHAR2類型的數(shù)值.
字符函數(shù)的返回類型所受的限制和基本數(shù)據(jù)庫類型所受的限制是相同的。
字符型變量存儲的最大值:
VARCHAR2數(shù)值被限制為2000字符(ORACLE 8中為4000字符)
CHAR數(shù)值被限制為255字符(在ORACLE8中是2000)
long類型為2GB
Clob類型為4GB
1、CHR
語法: chr(x)
功能:返回在數(shù)據(jù)庫字符集中與X擁有等價數(shù)值的字符。CHR和ASCII是一對反函數(shù)。經(jīng)過CHR轉(zhuǎn)換后的字符再經(jīng)過ASCII轉(zhuǎn)換又得到了原來的字
符。
使用位置:過程性語句和SQL語句。
2、CONCAT
語法: CONCAT(string1,string2)
功能:返回string1,并且在后面連接string2。
使用位置:過程性語句和SQL語句。
3、INITCAP
語法:INITCAP(string)
功能:返回字符串的每個單詞的第一個字母大寫而單詞中的其他字母小寫的string。單詞是用.空格或給字母數(shù)字字符進行分隔。不是字母的
字符不變動。
使用位置:過程性語句和SQL語句。
4、LTRIM
語法:LTRIM(string1,string2)
功能:返回刪除從左邊算起出現(xiàn)在string2中的字符的string1。String2被缺省設置為單個的空格。數(shù)據(jù)庫將掃描string1,從最左邊開始。當
遇到不在string2中的第一個字符,結(jié)果就被返回了。LTRIM的行為方式與RTRIM很相似。
使用位置:過程性語句和SQL語句。
5、NLS_INITCAP
語法:NLS_INITCAP(string[,nlsparams])
功能:返回字符串每個單詞第一個字母大寫而單詞中的其他字母小寫的string,nlsparams
指定了不同于該會話缺省值的不同排序序列。如果不指定參數(shù),則功能和INITCAP相同。Nlsparams可以使用的形式是:
‘NLS_SORT=sort'
這里sort制訂了一個語言排序序列。
使用位置:過程性語句和SQL語句。
6、NLS_LOWER
語法:NLS_LOWER(string[,nlsparams])
功能:返回字符串中的所有字母都是小寫形式的string。不是字母的字符不變。
Nlsparams參數(shù)的形式與用途和NLS_INITCAP中的nlsparams參數(shù)是相同的。如果nlsparams沒有被包含,那么NLS_LOWER所作的處理和
LOWER相同。
使用位置;過程性語句和SQL語句。
7、NLS_UPPER
語法:nls_upper(string[,nlsparams])
功能:返回字符串中的所有字母都是大寫的形式的string。不是字母的字符不變。nlsparams參數(shù)的形式與用途和NLS_INITCAP中的相同。如果
沒有設定參數(shù),則NLS_UPPER功能和UPPER相同。
使用位置:過程性語句和SQL語句。
8、REPLACE
語法:REPLACE(string,search_str[,replace_str])
功能:把string中的所有的子字符串search_str用可選的replace_str替換,如果沒有指定replace_str,所有的string中的子字符串
search_str都將被刪除。REPLACE是TRANSLATE所提供的功能的一個子集。
使用位置:過程性語句和SQL語句。
9、RPAD
語法:RPAD(string1,x[,string2])
功能:返回在X字符長度的位置上插入一個string2中的字符的string1。如果string2的長度要比X字符少,就按照需要進行復制。如果string2
多于X字符,則僅string1前面的X各字符被使用。如果沒有指定string2,那么使用空格進行填充。X是使用顯示長度可以比字符串的實際長度
要長。RPAD的行為方式與LPAD很相似,除了它是在右邊而不是在左邊進行填充。
使用位置:過程性語句和SQL語句。
10、RTRIM
語法: RTRIM(string1,[,string2])
功能: 返回刪除從右邊算起出現(xiàn)在string1中出現(xiàn)的字符string2. string2被缺省設置為單個的空格.數(shù)據(jù)庫將掃描string1,從右邊開始.當遇
到不在string2中的第一個字符,結(jié)果就被返回了RTRIM的行為方式與LTRIM很相似.
使用位置:過程性語句和SQL語句。
11、SOUNDEX
語法: SOUNDEX(string)
功能: 返回string的聲音表示形式.這對于比較兩個拼寫不同但是發(fā)音類似的單詞而言很有幫助.
使用位置:過程性語句和SQL語句。
12、SUBSTR
語法: SUBSTR(string,a[,b])
功能: 返回從字母為值a開始b個字符長的string的一個子字符串.如果a是0,那么它就被認為從第一個字符開始.如果是正數(shù),返回字符是從左
邊向右邊進行計算的.如果b是負數(shù),那么返回的字符是從string的末尾開始從右向左進行計算的.如果b不存在,那么它將缺省的設置為整個字符
串.如果b小于1,那么將返回NULL.如果a或b使用了浮點數(shù),那么該數(shù)值將在處理進行以前首先被卻為一個整數(shù).
使用位置:過程性語句和SQL語句。
13、TRANSLATE
語法: TRANSLATE(string,from_str,to_str)
功能: 返回將所出現(xiàn)的from_str中的每個字符替換為to_str中的相應字符以后的string. TRANSLATE是REPLACE所提供的功能的一個超集.
如果from_str比to_str長,那么在from_str中而不在to_str中而外的字符將從string中被刪除,因為它們沒有相應的替換字符. to_str不能為空
.Oracle把空字符串認為是NULL,并且如果TRANSLATE中的任何參數(shù)為NULL,那么結(jié)果也是NULL.
使用位置:過程性語句和SQL語句。
14、UPPER
語法: UPPER(string)
功能: 返回大寫的string.不是字母的字符不變.如果string是CHAR數(shù)據(jù)類型的,那么結(jié)果也是CHAR類型的.如果string是VARCHAR2類型的,那么
結(jié)果也是VARCHAR2類型的.
使用位置: 過程性語句和SQL語句。
字符函數(shù)——返回數(shù)字
這些函數(shù)接受字符參數(shù)回數(shù)字結(jié)果.參數(shù)可以是CHAR或者是VARCHAR2類型的.盡管實際下許多結(jié)果都是整數(shù)值,但是返回結(jié)果都是簡單的NUMBER
類型的,沒有定義任何的精度或刻度范圍.
16、ASCII
語法: ASCII(string)
功能: 數(shù)據(jù)庫字符集返回string的第一個字節(jié)的十進制表示.請注意該函數(shù)仍然稱作為ASCII.盡管許多字符集不是7位ASCII.CHR和ASCII是互為
相反的函數(shù).CHR得到給定字符編碼的響應字符. ASCII得到給定字符的字符編碼.
使用位置: 過程性語句和SQL語句。
17、INSTR
語法: INSTR(string1, string2[a,b])
功能: 得到在string1中包含string2的位置. string1時從左邊開始檢查的,開始的位置為a,如果a是一個負數(shù),那么string1是從右邊開始進行
掃描的.第b次出現(xiàn)的位置將被返回. a和b都缺省設置為1,這將會返回在string1中第一次出現(xiàn)string2的位置.如果string2在a和b的規(guī)定下沒有
找到,那么返回0.位置的計算是相對于string1的開始位置的,不管a和b的取值是多少.
使用位置: 過程性語句和SQL語句。
18、INSTRB
語法: INSTRB(string1, string2[a,[b]])
功能: 和INSTR相同,只是操作的對參數(shù)字符使用的位置的是字節(jié).
使用位置: 過程性語句和SQL語句。
19、LENGTH
語法: LENGTH(string)
功能: 返回string的字節(jié)單位的長度.CHAR數(shù)值是填充空格類型的,如果string由數(shù)據(jù)類型CHAR,它的結(jié)尾的空格都被計算到字符串長度中間.
如果string是NULL,返回結(jié)果是NULL,而不是0.
使用位置: 過程性語句和SQL語句。
20、LENGTHB
語法: LENGTHB(string)
功能: 返回以字節(jié)為單位的string的長度.對于單字節(jié)字符集LENGTHB和LENGTH是一樣的.
使用位置: 過程性語句和SQL語句。
21、NLSSORT
語法: NLSSORT(string[,nlsparams])
功能: 得到用于排序string的字符串字節(jié).所有的數(shù)值都被轉(zhuǎn)換為字節(jié)字符串,這樣在不同數(shù)據(jù)庫之間就保持了一致性. Nlsparams的作用和
NLS_INITCAP中的相同.如果忽略參數(shù),會話使用缺省排序.
使用位置: 過程性語句和SQL語句。
您可能感興趣的文章:
- oracle 存儲過程詳細介紹(創(chuàng)建,刪除存儲過程,參數(shù)傳遞等)
- Oracle存儲過程返回游標實例詳解
- oracle 在一個存儲過程中調(diào)用另一個返回游標的存儲過程
- Oracle存儲過程入門學習基本語法
- Oracle中 關于數(shù)據(jù)庫存儲過程和存儲函數(shù)的使用
- oracle如何恢復被覆蓋的存儲過程
- oracle數(shù)據(jù)庫中查看系統(tǒng)存儲過程的方法
- oracle 存儲過程和函數(shù)例子
- Oracle存儲過程和存儲函數(shù)創(chuàng)建方法(詳解)
- Oracle存儲過程和自定義函數(shù)詳解
- Oracle學習記錄之使用自定義函數(shù)和觸發(fā)器實現(xiàn)主鍵動態(tài)生成
- oracle 存儲過程、函數(shù)和觸發(fā)器用法實例詳解
相關文章
解決Oracle?DISTINCT?報錯?inconsistent?datatypes:?expected?
這篇文章主要介紹了Oracle DISTINCT報錯inconsistent datatypes:expected-got CLOB(數(shù)據(jù)類型不一致:?應為-,但卻獲得?CLOB),本文給大家分享三種解決方案,需要的朋友可以參考下2023-07-07Oracle數(shù)據(jù)庫部分遷至閃存存儲的實現(xiàn)方法
下面小編就為大家分享一篇Oracle數(shù)據(jù)庫部分遷至閃存存儲的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12oracle 實際值超過數(shù)據(jù)庫某個字段指定長度報錯解決
本節(jié)主要介紹了oracle 實際值超過數(shù)據(jù)庫某個字段指定長度報錯解決方法,需要的朋友可以參考下2014-07-07Oracle數(shù)據(jù)庫新裝之后出現(xiàn)的監(jiān)聽程序無法正常啟動和運行(Oracle-12514)問題
這篇文章主要介紹了Oracle數(shù)據(jù)庫新裝之后出現(xiàn)的監(jiān)聽程序無法正常啟動和運行(Oracle-12514)問題,需要的朋友可以參考下2018-11-11oracle中的greatest 函數(shù)和 least函數(shù)示例代碼
這篇文章主要介紹了oracle中的greatest 函數(shù)和 least函數(shù)的實例代碼,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下2018-11-11Oracle中rank,over partition函數(shù)的使用方法
本文主要介紹Oracle中rank,over partition函數(shù)的用法,希望對大家有所幫助。2016-05-05