拿到乙個字串,需要判斷下是否純數字組成
方法1 :
這個方法是之前乙個oracle群裡的同學給寫的。直接套用過來了
這個方法是使用exception
create function f_if_number(p_str in varchar2)
return number
ase_error exception;
pragma exception_init(e_error, -06502);
begin
return to_number(p_str);
exception
when e_error then
return null;
end;j
方法2 :
這個方法是使用translate函式進行替換
create
orreplace
function
is_number(str
varchar2)
return
number is
v_str
varchar2
(2000);
begin
v_str :=
replace
(translate
(str,
'0123456789'
,'0000000000'
),'0',''
); ifv_str
isnull
then
return0;
else
return1;
endif;
end;
方法3 :
這個方法,利用正規表示式即可
create
orreplace
function
is_number(str
varchar2)
return
number is
begin
ifregexp_like(str,
'^[0-9]+$')
then
return0;
else
return1;
endif;
end;
方法4:
這裡不是乙個方法,其實也是在用exception
declare
v_sql varchar2(100) := '&shuru';
not_char exception;
pragma exception_init(not_char, -01722);
ha number;
begin
select to_number(v_sql) into ha from dual;
dbms_output.put_line(ha);
exception
when not_char then
dbms_output.put_line('輸入非純數字');
when others then
dbms_output.put_line('發生其它錯誤');
end;
oracle判斷乙個字元是否是數字
方法一 返回值為null的表示字串,返回值大於等於1的表示有非數字字元 select lengthb ltrim 1248346 0123456789 from dual 或 select lengthb rtrim 1248346a 0123456789 from dual 方法二 返回值為nul...
mybati查詢乙個字段出現的是另乙個欄位的值
使用mybatis的時候,查詢列表進行展示,joint bank number欄位總是為空 但是area欄位是沒有資料的,確有資料,很奇怪 最後我只查詢joint bank number欄位,發現,除了area欄位,所有的字段都是空,但是我查的是joint bank number欄位啊,然後我就在考...
mysql判斷乙個欄位不包含中文
中文 2個位元組,英文或數字 1個位元組,因此我們用mysql中兩個函式比較位元組和字元的長度是否相等來判斷是否包含中文 select from user where char length name length name 如果想過濾掉空字串或限制下長度可以加上長度判斷 select from u...