orcale 替換函式

2021-08-22 04:50:44 字數 1623 閱讀 1202

2023年11月21日 10:05:22

1.translate 

語法:translate(char, from, to) 

用法:返回將出現在from中的每個字元替換為to中的相應字元以後的字串。 

若from比to字串長,那麼在from中比to中多出的字元將會被刪除。 

三個引數中有乙個是空,返回值也將是空值。 

舉例:

select translate('abcdefga','abc','wo') 返回值 from dual;
返回值

-------

wodefgw

分析:該語句要將』abcdefga』中的』abc』轉換為』wo』, 

由於』abc』中』a』對應』wo』中的』w』, 

故將』abcdefga』中的』a』全部轉換成』w』; 

而』abc』中』b』對應』wo』中的』o』, 

故將』abcdefga』中的』b』全部轉換成』o』; 

由於』abc』中的』c』在』wo』中沒有與之對應的字元, 

故將』abcdefga』中的』c』全部刪除; 

簡單說來,就是將from中的字元轉換為to中與之位置對應的字元, 

若to中找不到與之對應的字元,返回值中的該字元將會被刪除。 

在實際的業務中,可以用來刪除一些異常資料, 

比如表a中的乙個欄位t_no表示**號碼, 

而**號碼本身應該是乙個由數字組成的字串, 

為了刪除那些含有非數字的異常資料, 

就用到了translate函式:

delete from a,

where length(translate(trim(a.t_no),'0123456789'|| a.t_no,

'0123456789')) <> length(trim(a.t_no));

2.replace 

語法:replace(char, search_string,replacement_string) 

用法:將char中的字串search_string全部轉換為字串replacement_string。 

舉例:

select replace('fgsgswsgs', 'fk' ,'j') 返回值 from dual;
返回值

---------

fgsgswsgs

select replace('fgsgswsgs', 'sg' ,'eeerrrttt') 返回值 from dual;
返回值

-----------------------

fgeeerrrtttsweeerrrttts

分析:第乙個例子中由於』fgsgswsgs』中沒有與』fk』匹配的字串, 

故返回值仍然是』fgsgswsgs』; 

第二個例子中將』fgsgswsgs』中的字串』sg』全部轉換為』eeerrrttt』。 

總結:綜上所述,replace與translate都是替代函式, 

只不過replace針對的是字串,而translate針對的是單個字元。

ORCALE字元函式

lpad 在oracle plsql中,lpad函式將左邊的字串填充一些特定的字元,其語法格式如下 lpad string1,padded length,pad string 其中string1是需要貼上字元的字串 padded length是返回的字串的數量,如果這個數量比原字串的長度要短,lpa...

str replace 替換函式

定義 str replace 函式以其他字元替換字串中的一些字元 區分大小寫 規則 1 如果搜尋的字串是陣列,那麼它將返回陣列。2 如果搜尋的字串是陣列,那麼它將對陣列中的每個元素進行查詢和替換。3 如果同時需要對陣列進行查詢和替換,並且需要執行替換的元素少於查詢到的元素的數量,那麼多餘元素將用空字...

orcale資料恢復

恢復已刪除的表 select from aak file drop table aak file select from recyclebin where original name aak file flashback table aak file to before drop desc aak ...