oracle中translate用法 oracle如何判斷數(shù)字字串中是否含有英文字母?
oracle如何判斷數(shù)字字串中是否含有英文字母?簡(jiǎn)單的:一條語(yǔ)句搞定,SqlPlus里面selectdecode(length(replace(translate("字符串的值","012345678
oracle如何判斷數(shù)字字串中是否含有英文字母?
簡(jiǎn)單的:一條語(yǔ)句搞定,SqlPlus里面selectdecode(length(replace(translate("字符串的值","0123456789.",""),"","")),0,"isnumber","isnotanumber")fromdual麻煩點(diǎn)的:寫(xiě)function在oracle數(shù)據(jù)庫(kù)中,createorreplacefunctionf_str_or_num(strvarchar2)returnvarchar2is2v_numnumber3v_returnvarchar2(60)4begin5v_num:=to_number(str)6v_return:=str||"isanumberstring!"7returnv_return8exceptionwhenothersthen9v_return:=str||"isnotanumberstring!"10returnv_return11endf_str_or_num然后調(diào)用selectf_str_or_num("字符串的值)fromdual
Oraclesql函數(shù)replace和translate的區(qū)別?
函數(shù)用法都不一樣,translate是逐個(gè)字符替換的--包含ABC則替換為123SELECT REPLACE("AbCaBc","ABC","123") FROM dual--將A替換成1,B替換成2,C替換成3SELECT TRANSLATE("AbCaBc","ABC","123") FROM dual
oracle中調(diào)用存儲(chǔ)過(guò)程時(shí)顯示該存儲(chǔ)過(guò)程處于無(wú)效狀態(tài)是怎么回事?
1.你可以選擇在過(guò)程里面加入record,定義一個(gè)類(lèi)型type1,然后把你的數(shù)據(jù)插入這個(gè)類(lèi)里面,通過(guò)for循環(huán) 調(diào)用type1(i)里面的數(shù)據(jù)2.你可以參考我的這個(gè)做法:select listagg(a,",") within group(order by a) from (select """"""||a||""""""a from (select regexp_substr("1,2,3,4,5","[^,]",1,level) a from dual connect by level <=length(translate("1,2,3,4,5",","||"1,2,3,4,5",",")) 1))。你把變量替換成你的需求數(shù)字列。