① oracle 自定義函數處理『過濾掉空格和其他特殊字元函數』怎麼寫
用regexp_replace這個函數根據正則表達式將特殊字元替換成空串
② oracle怎麼去掉字元串的空格的數據
首先便是這Trim函數。Trim 函數具有刪除任意指定字元的功能,而去除字元串首尾空格則是trim函數被使用頻率最高的一種。語法Trim ( string ) ,參數string:string類型,指定要刪除首部和尾部空格的字元串返回值String。函數執行成功時返回刪除了string字元串首部和尾部空格的字元串,發生錯誤時返回空字元串("")。 如果參數值為null時,會拋出空指針異常。在oracle中,trim使用的形式多為人rtrim()與ltrim()兩種,分別為去除字元串右邊空格與去除字元串左邊空格。
當然trim的功能不止如此,下面進行細致的介紹,這里我多以去除字元串空格為例。
我們看下trim函數的語法描述:trim( [ { {leading|trailing|both} [trim_character]|trim_character} from] trim_source
1)、不使用任何參數
SQL> select trim(' 11 ') aa from al;
AA
--
11
這是最常見的一種使用方法,都使用默認的參數,默認情況下TRIM會同時刪除字元串前後出現的空格。
2)、使用both參數,效果等同於方法一不使用任何參數
SQL> select trim(both from ' 11 ') aa from al;
AA
--
11
逗BOTH地參數表示同時去除字元串前後所指定的內容(默認情況下刪除空格)。
3)、使用leading與trailing參數
SQL> select trim(leading from ' 11 ') aa from al;
AA
----
11
SQL> select trim(trailing from ' 11 ') aa from al;
AA
-----
11
從結果中得分隔符'-',可以發現使用leading參數可以去除字元串右端的空格,而trailing參數則可以去除字元串左端的空格。正如oracle提供的rtrim()與ltrim()。
4)、使用trim_character參數
trim_character參數改變了逗刪除空格地的默認行為。如果想要刪除字元串'xxxxWORLDxxxx'前後出現的逗x地,逗trim_character地參數就派上用場了。
SQL> select trim('x' from 'xxxxWORLDxxxx') aaaaa from al;
AAAAA
-----
WORLD
trim_character配合逗both地、逗trailing地和逗leading地三個參數使用效果如下,與之前演示類似。看結果,不贅述。
SQL> select trim('x' from 'xxxxWORLDxxxx') aaaaa from al;
AAAAA
-----
WORLD
SQL> select trim(both 'x' from 'xxxxWORLDxxxx') aaaaa from al;
AAAAA
-----
WORLD
SQL> select trim(trailing 'x' from 'xxxxWORLDxxxx') aaaaa from al;
AAAAA
---------
xxxxWORLD
SQL> select trim(leading 'x' from 'xxxxWORLDxxxx') aaaaa from al;
AAAAA
---------
WORLDxxxx
必須注意的一點是這里的逗trim_character地參數只允許包含一個字元,不支持多字元。trim不能滿足我們去除多字元要求,但是我們可以使用rtrim和ltrim來處理。
1)使用rtrim
SQL> select rtrim('ORxxxxWORLDxxxxOR','OR') aaaaa from al;
AAAAA
---------------
ORxxxxWORLDxxxx
2)使用ltrim
SQL> select ltrim('ORxxxxWORLDxxxxOR','OR') aaaaa from al;
AAAAA
---------------
xxxxWORLDxxxxOR
3)聯合使用RTRIM和LTRIM函數達到我們的目的
SQL> select rtrim(ltrim('ORxxxxWORLDxxxxOR','OR'),'OR') aaaaa from al;
AAAAA
-------------
xxxxWORLDxxxx
使用rtrim和ltrim函數時的注意事項:逗OR地不表示整個逗OR地字元串進行匹配,而是發現任意的字元逗O地或字元逗R地均做刪除操作。
對於trim函數的應用就介紹到,下面介紹一下replace函數,個人覺得replace函數在去空格時更好用。replace 函數用第三個表達式替換第一個字元串表達式中出現的所有第二個給定字元串表達式。來看下replace函數的語法描述:replace('string_replace1','string_replace2','string_replace3')
'string_replace1' 待搜索的字元串表達式,string_replace1 可以是字元數據或二進制數據。
'string_replace2' 待查找的字元串表達式,string_replace2 可以是字元數據或二進制數據。
'string_replace3' 替換用的字元串表達式,string_replace3 可以是字元數據或二進制數據。
返回類型,如果 string_replace(1、2 或 3)是支持的字元數據類型之一,則返回字元數據;如果 string_replace(1、2 或 3)是支持的 binary 數據類型之一,則返回二進制數據。
這里我們依然以去空格為例。
SQL> select replace(' aa kk ',' ','') abcd from al;
ABCD
----
aakk
與使用trim函數的結果進行對比,我們可以發現,使用replace函數不僅可以去除字元串兩端的空格,也可去除字元串內部的空格。
當然,如果只是要去除字元串兩端的空格,使用trim函數效率會更高。
③ oracle 剔除空格
update zz set a=trim(a)
④ oracle怎麼去掉字元串的空格的數據
oracle
sql
有以下三個函數:
trim()
rtrim()
ltrim()第一個是去掉兩邊的空格或指定串.
第二個是去掉尾部空格或從尾部開始的指定串
第三個是去掉前面的空格或從前面開始的指定串.
⑤ oracle 去除空格
update table set name=replace(name," ","");select replace(name," ","") from table;
兩種方式均可,第一種將資料庫中數據改變,第二種不改變資料庫中的數據,直接查詢。需要用到replace()函數。含義為:替換字元串;replace(原欄位,「原欄位舊內容「,「原欄位新內容「)。
(5)oracle字元串過濾空格擴展閱讀:
oracle常用字元串函數
1、CHR
語法: chr(x)
功能:返回在資料庫字元集中與X擁有等價數值的字元。CHR和ASCII是一對反函數。經過CHR轉換後的字元再經過ASCII轉換又得到了原來的字元。
使用位置:過程性語句和SQL語句。
2、CONCAT
語法:CONCAT(string1,string2)
功能:返回string1,並且在後面連接string2。
使用位置:過程性語句和SQL語句。
3、INITCAP
語法:INITCAP(string)
功能:返回字元串的每個單詞的第一個字母大寫而單詞中的其他字母小寫的string。單詞是用.空格或給字母數字字元進行分隔。不是字母的字元不變動。
使用位置:過程性語句和SQL語句。
4、LTRIM
語法:LTRIM(string1,string2)
功能:返回刪除從左邊算起出現在string2中的字元的string1。String2被預設設置為單個的空格。資料庫將掃描string1,從最左邊開始。當遇到不在string2中的第一個字元,結果就被返回了。LTRIM的行為方式與RTRIM很相似。
使用位置:過程性語句和SQL語句。
5、NLS_INITCAP
語法:NLS_INITCAP(string[,nlsparams])
功能:返回字元串每個單詞第一個字母大寫而單詞中的其他字母小寫的string,nlsparams
指定了不同於該會話預設值的不同排序序列。如果不指定參數,則功能和INITCAP相同。Nlsparams可以使用的形式是: