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

時間 2022-02-12 06:40:13

1樓:匿名使用者

沒有可以用translate來實現:

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

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

2樓:清璧興晨菲

額,正好以前寫過一個

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中有沒有一個函式可以判斷一個字串中是否包含數字

3樓:匿名使用者

使用 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 的, 就是包含數字了.

4樓:永恆谷愛戀

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

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

5樓:匿名使用者

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');

6樓:匿名使用者

額,正好以前寫過一個

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,說明裡邊包含非數字的字元

7樓:匿名使用者

使用者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判斷是否是數字函式

8樓:愛笑笑的蝸豬

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中寫自定義函式?

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

9樓:匿名使用者

**如下:

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有沒有判斷一個字串裡面包含令一個字串的函式

10樓:

函式:instr(,[,i][,j])

說明:在c1中從i開始搜尋c2第j次出現的位置。i:預設1; j:預設1

oracle資料庫如何將符串500 400 300 200 100拆開顯示查詢出來分兩個欄位符號跟金額500)

解答 select col from select sys connect by path col,col,level from select col,row number over order by rownum rn from select distinct substr col,instr c...

oracle列求和,oracle中列中的資料求和

測試資料 create table test mount int,unit varchar2 10 insert into test values 100,ml insert into test values 100,ml insert into test values 1,u insert int...

php中如何判斷字串中是否有某個字元

黑馬程式設計師 php中如何判斷一個字串中是否有某個字元,如下 php語言是一個功能強大的嵌入式html指令碼語言,它的易用性讓許多程式設計師選擇使用。php判斷字串的包含,可以使用php的內建函式strstr,strpos,stristr直接進行判斷.也可以通過explode函式的作用寫一個判斷函...