oracle本身沒有,得自定義一個函數(shù)
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計制作、成都網(wǎng)站設(shè)計與策劃設(shè)計,瀘溪網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:瀘溪等地區(qū)。瀘溪做網(wǎng)站價格咨詢:18982081108
create or replace function isNumber(p in varchar2)
return number
is
result number;
begin
result := to_number(p);
return 1;
exception
when VALUE_ERROR then return 0;
end;
調(diào)用
select isNumber('abc123') from dual
或者
select isNumber('123') from dual
返回值為1,說明是數(shù)字,返回值是0,說明里邊包含非數(shù)字的字符
NVL2(E1, E2, E3)的功能為:如果E1為NULL,則函數(shù)返回E3,若E1不為null,則返回E2;
TRANSLATE(string,from_str,to_str) 的功能:返回將(所有出現(xiàn)的)from_str中的每個字符替換為to_str中的相應(yīng)字符以后的string。TRANSLATE 是 REPLACE 所提供的功能的一個超集。
如果 from_str 比 to_str 長,那么在 from_str 中而不在 to_str 中的額外字符將從 string 中被刪除,因為它們沒有相應(yīng)的替換字符。to_str 不能為空。Oracle 將空字符串解釋為 NULL,并且如果TRANSLATE 中的任何參數(shù)為NULL,那么結(jié)果也是 NULL。
簡單的:一條語句搞定,SqlPlus里面select decode(length(replace(translate('字符串的值','0123456789.',' '),' ','')),0,'is number','is not a number') from dual; 麻煩點的:寫function在oracle數(shù)據(jù)庫中,create or replace function f_str_or_num(str varchar2) return varchar2 is
2 v_num number;
3 v_return varchar2(60);
4 begin
5 v_num:=to_number(str);
6 v_return:=str||' is a number string!';
7 return v_return;
8 exception when others then
9 v_return:=str||' is not a number string!';
10 return v_return;
11 end f_str_or_num; 然后調(diào)用select f_str_or_num('字符串的值) from dual;
declare aa varchar2 := 'wkressssdfdf';
begin
if instr(aa,'s')0 then
dbms_output.put_line('有s字符');
else
dbms_output.put_line('沒有s字符');
end if;
end;