oracle判斷是否是數字函式,oracle有沒有判斷乙個字串都是數字的函式呀

2022-02-15 02:37:01 字數 5160 閱讀 7696

1樓:愛笑笑的蝸豬

pl/sql並沒有提供直接判斷的函式,所以自己寫乙個create or replace function isnumber(mystr varchar2) return number

isstr varchar2(400);

isnum number;

num number;

begin

--返回0,不是數字。1,是數字

isnum:=0;

str:=trim(mystr);

--如果輸入值為空,就返回不是數字。

if trim(str) is not null thenbegin

num:=to_number(str);

isnum:=1;

exception

when invalid_number thennull;

when others then

null;

end;

end if;

return isnum;

end;

oracle有沒有判斷乙個字串都是數字的函式呀

2樓:匿名使用者

1、建立測試表,

create table test_num(id varchar2(20),remark varchar2(20));

2、插入測試資料,部分值含回車換行符;

insert into test_num values('123a', '123a');

insert into test_num values('456', '456');

insert into test_num values('78.9', '78.9');

insert into test_num values('-123', '-123');

commit;

3、查詢表中全量資料;select t.*, rowid from test_num t;

4、編寫語句,只查詢欄位id全為數字的記錄,可以發現結果中只有一條記錄;

select t.*, rowid sec from test_num t where not regexp_like(id,'\d');

3樓:匿名使用者

額,正好以前寫過乙個

oracle本身沒有,得自定義乙個函式

create or replace function isnumber(p in varchar2)

return number

isresult number;

begin

result := to_number(p);

return 1;

exception

when value_error then return 0;

end;

呼叫select isnumber('abc123') from dual

或者select isnumber('123') from dual返回值為1,說明是數字,返回值是0,說明裡邊包含非數字的字元

4樓:匿名使用者

使用者oracle的正則函式regexp_instr就行了。

select regexp_instr('65','[1-9][0-9]?$') from dual ;

測試:sys@startrek> select regexp_instr('65','[1-9][0-9]?$') from dual ;

regexp_instr('65','[1-9][0-9]?$')

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

1sys@startrek> select regexp_instr('0','[1-9][0-9]?$') from dual ;

regexp_instr('0','[1-9][0-9]?$')

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

0sys@startrek> select regexp_instr('1d','[1-9][0-9]?$') from dual ;

regexp_instr('1d','[1-9][0-9]?$')

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

0大於0表示為數字,等於0表示非數字。

oracle中有沒有乙個函式可以判斷乙個字串中是否包含數字

5樓:匿名使用者

使用 regexp_instr 函式, 可以實現這個 功能. 下面是例子:

sql> select * from test_reg_substr;

a-----------------------------------

abc123xyz

abc123xyz456

edward

找數字sql> select

2 regexp_instr (a,'[0-9]+') as a

3 from

4 test_reg_substr;

a----------44

0也就是 結果返回值 大於0 的, 就是包含數字了.

6樓:永恆谷愛戀

你可以看看正規表示式regexp_like 這個是可以判斷的

如何判斷 oracle 字串中的數字?oracle 是否有函式可以判斷

7樓:匿名使用者

沒有可以用translate來實現:

select translate('abc123e','0123456789',' ') from dual;

可以用這個返回的值和原值比較,也可以比較兩者長度

8樓:清璧興晨菲

額,正好以前寫過乙個

oracle本身沒有,得自定義乙個函式

create or replace function isnumber(p in varchar2)

return number

isresult number;

begin

result := to_number(p);

return 1;

exception

when value_error then return 0;

end;

呼叫select isnumber('abc123') from dual

或者select isnumber('123') from dual返回值為1,說明是數字,返回值是0,說明裡邊包含非數字的字元

oracle如何判斷某個欄位的值是不是數字

9樓:匿名使用者

1、建立測試表,

create table test_isnum(id number, value varchar2(20));

2、插入測試資料,

insert into test_isnum values(1,'a');

insert into test_isnum values(2,329);

insert into test_isnum values(4,'15');

insert into test_isnum values(6,'2c');

commit;

3、查詢表中所有記錄,select t.*, rowid from test_isnum t,

4、編寫sql,判斷value欄位,記錄為數字的內容,

select t.*,

case

when not regexp_like(value, '\d') then

'是'else

'否'end as "是否數字"

from test_isnum t;

10樓:最後天使毀滅

1. 這個問題itpub已討論很久,你搜一下。

2.不使用儲存過程,oracle沒有isnumber()之類的函式,因此至少你得寫乙個類似isnumber()的函式,這就是儲存過程。

3. 在這個函式中通過使用 to_number() 並捕捉異常來確定是否是數字。

11樓:匿名使用者

要先建立乙個函式:

create or replace function isnumber(p_column in varchar2) return number

isl_t number;

begin

l_t := to_number(p_column) ;

return 1;

exception when others thenreturn 0;

end;

測試,如果返回0,則代表不是數字,如果返回值為1則代表是數字。

select isnumber('100') from dual;

select isnumber('-100') from dual;

select isnumber('100.01') from dual;

select isnumber('a123') from dual;

利用oracle,編寫乙個函式,用於判斷輸入的字串中有幾個數字?這個函式該如何編寫啊?很著急……

12樓:匿名使用者

**如下:

create or replace function digits(str varchar2)

return number

asi number:=1;--迴圈變數

n number:=0;--統計結果

c char(10);

begin

while i<=length(str) loopc:=substr(str,i,1);

if ascii(c)>=48 and ascii(c)<=57 then

n:=n+1;

end if;

i:=i+1;

end loop;

return n;

end;

請教oracle下判斷為null的函式

13樓:王少波

select * from table  t where t.a is null

如何判斷函式是否有反函式,判斷乙個函式是否有反函式的條件是什麼?

只要是一一對映就有copy反函式。一次函式 y kx b 有反函式,二次函式 y ax 2 bx c 沒有,因為y x 2,當y 1時,x 1或 1,y對應2個x,不是一一對映 函式存在反函式的充要條件是,函式的定義域與值域是一一對映 嚴格增 減 的函式一定有嚴格增 減 的反函式 反函式存在定理 一...

怎樣判斷函式是否是週期函式,怎樣判斷乙個函式是否是週期函式

如果有函式的影象 實際上更容易判斷一些 如果只有函式式 那麼如果有常量t使得 f x t f x 那麼f x 就是週期函式 的唯一標準是是否存在實數t,使得對於任意的x都是f x t f x 怎麼判斷是不是週期函式 15 判斷週期函式的方法,一般是根據定義。即對函式f x 如果存在常數t t 0 使...

oracle中怎麼判斷查詢的列中是否包含字母

看看下邊的語句可不可以 select case when regexp like 欄位名,a z a z then 包含字母 else 不包含字母 end from 表名字 正規表示式函式 regexp like 關鍵的引數是第二個 a z a z 其中.表示匹配任何單字元,換行符除外 a z 是小...