資料庫編程--translate的使用,--translate
1.translate文法
translate(string,from_str,to_str)
2.解釋: 將string字串中的存在的字串from_str的每個字元從左至右替換成字串to_str的對應的每個字元,如果沒有對應上的則在string中會被替換為空白。 區分大小寫; to_str不可為空;
例子1: select translate('項目組24355translate','234','@#$') from dual; ------------------------------ 項目組@$#55translate **此時相當於@替換了2,#替換了3,$替換了4
如果from_str的長度大於to_str的長度,則沒有對應上的在string中會被替換為空白 例子2: select translate('項目組24355translate','234項目組','@#$') from dual; ------------------------------ @$#55translate **“項目組”三個字由於沒有對應則在string中被刪除了,或者說被替換成空了。 如果to_str的長度大於from_str的長度則沒有任何影響,不會出現任何異常
例子3: select translate('項目組24355translate','234','@#$sdfsdfsdf') from dual; ------------------------------ 項目組@$#55translate **結果沒有影響
相關應用: 1.判斷某一個字串是否全部是數字 有時候在處理某個欄位的時候,本質要求填寫數字,由於曆史資料填寫的不夠規範,導致許多帶有中文或者英文的不合格的垃圾資料,怎麼判斷是否是數字呢? 使用replace+translate begin if replace(translate('項目組要求321789a8', '0123456789', '@'), '@', '') is null then dbms_output.put_line('這個是數字'); else dbms_output.put_line('這個不是數字'); end if; end;
結果:這個不是數字
1.translate文法
translate(string,from_str,to_str)
2.解釋: 將string字串中的存在的字串from_str的每個字元從左至右替換成字串to_str的對應的每個字元,如果沒有對應上的則在string中會被替換為空白。 區分大小寫; to_str不可為空;
例子1: select translate('項目組24355translate','234','@#$') from dual; ------------------------------ 項目組@$#55translate **此時相當於@替換了2,#替換了3,$替換了4
如果from_str的長度大於to_str的長度,則沒有對應上的在string中會被替換為空白 例子2: select translate('項目組24355translate','234項目組','@#$') from dual; ------------------------------ @$#55translate **“項目組”三個字由於沒有對應則在string中被刪除了,或者說被替換成空了。 如果to_str的長度大於from_str的長度則沒有任何影響,不會出現任何異常
例子3: select translate('項目組24355translate','234','@#$sdfsdfsdf') from dual; ------------------------------ 項目組@$#55translate **結果沒有影響
相關應用: 1.判斷某一個字串是否全部是數字 有時候在處理某個欄位的時候,本質要求填寫數字,由於曆史資料填寫的不夠規範,導致許多帶有中文或者英文的不合格的垃圾資料,怎麼判斷是否是數字呢? 使用replace+translate begin if replace(translate('項目組要求321789a8', '0123456789', '@'), '@', '') is null then dbms_output.put_line('這個是數字'); else dbms_output.put_line('這個不是數字'); end if; end;
結果:這個不是數字