oracle自定義判斷資料是否為數值函式

2021-09-08 10:54:48 字數 1495 閱讀 4597

1

create

orreplace

function

isnumeric (str

invarchar2)2

return

number3is

4 v_str varchar2 (1000);5

begin6if

stris

null

7then

8return0;

9else

10 v_str := translate(str, '

.0123456789

', '.'

);11

12if v_str ='.

'or v_str ='+.

'or v_str ='-.

'or v_str is

null

13then

14return

str;

15else

16return0;

17endif;

18endif;

19end

isnumeric;

一、語法: 

translate(string,from_str,to_str) 

二、目的 

返回將(所有出現的)from_str中的每個字元替換為to_str中的相應字元以後的string。translate 是 replace 所提供的功能的乙個超集。如果 from_str 比 to_str 長,那麼在 from_str 中而不在 to_str 中的額外字元將從 string 中被刪除,因為它們沒有相應的替換字元。to_str 不能為空。oracle 將空字串解釋為 null,並且如果translate 中的任何引數為null,那麼結果也是 null。 

三、示例 

sql**

1. select translate('abcdefghij','abcdef','123456') from dual; 

2. translate ( 

3. -------------- 

4. 123456ghij 

5. 6. select translate('abcdefghij','abcdefghij','123456') from dual; 

7. transl 

8. ---------- 

9. 123456 

語法:translate(expr,from,to)

expr: 代表一串字元,from 與 to 是從左到右一一對應的關係,如果不能對應,則視為空值。

舉例:select translate('abcbbaadef','ba','#@') from dual (b將被#替代,a將被@替代)

select translate('abcbbaadef','bad','#@') from dual (b將被#替代,a將被@替代,d對應的值是空值,將被移走)

因此:結果依次為:@#c##@@def 和@#c##@@ef

oracle自定義判斷資料是否為數值函式

1 create orreplace function isnumeric str invarchar2 2 return number3is 4 v str varchar2 1000 5 begin6if stris null 7then 8return0 9else 10 v str tran...

oracle自定義型別

1 定義乙個型別 sql create or replace type propertyvalue as object number value number,string value varchar2 2000 date value date,member function getnumberva...

Oracle自定義函式

語法如下 create or replace function function name argment type,argment type return return type 返回資料的型別 變數的申明,比如 stryuan varchar2 150 begin function body 函...