字串轉換為數字時判斷非法字元並校正
--首先判斷哪些為不符合數字格式的字串
CREATE OR REPLACE FUNCTION "HLJHZ"."FUN_NOTVALID" (MYARG IN VARCHAR2)
RETURN VARCHAR2
AS
v_count number(10);
v_number varchar2(30);
v_char number;
C_NOTVALID varchar2(10) :='非法';
not_valid exception;
pragma exception_init(not_valid,-01722);
BEGIN
select to_number(MYARG) into v_char from dual;
return ('合法');
exception
when not_valid then
RETURN(C_NOTVALID);
END;
/
--將不符合數字格式的字串轉換為符合數字格式的字串,然後再使用to_number函式轉換即可
CREATE OR REPLACE FUNCTION "HLJHZ"."FUN_CHAR_NUMBER" (MYARG IN VARCHAR2)
RETURN VARCHAR2
AS
v_count number(10);
v_number varchar2(30);
v_valid number;
v_char varchar2(30);
not_valid exception;
pragma exception_init(not_valid,-01722);
BEGIN
if MYARG='-' then
select '0' into v_char from dual;
else select MYARG into v_char from dual;
end if;
select to_number(v_char) into v_valid from dual;
return (v_char);
exception
when not_valid then
--對包含不符合數字格式的字串進行逐一處理,如果遇到新的不合法的情況需要補充
select trim(v_char) into v_char from dual;
select TRANSLATE(v_char,',。、萬元','.') into v_char from dual;
select substr(v_char,1,instr(v_char,'.',1,1))||
replace(substr(v_char,instr(v_char,'.',1,1)+1),'.','') into v_char from dual;
select replace(v_char,' ','') into v_char from dual;
select replace(v_char,'-','-') into v_char from dual;
select replace(v_char,'—','-') into v_char from dual;
select substr(v_char,1,instr(v_char,'-',1,1))||
replace(substr(v_char,instr(v_char,'-',1,1)+1),'-','') into v_char from dual;
select replace(v_char,'0-','-') into v_char from dual;
RETURN(v_char);
END;
/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28803801/viewspace-768148/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 判斷迴文串 字串/數字相互轉換字串
- 判斷字串中出現最多的字元,並統計次數字串字元
- Octave 數字轉字元,連線兩個字串,以及如何將字串轉換為變數名稱字元字串變數
- Thymeleaf將字串轉換為數字字串
- java判斷輸入的字串是否為數字Java字串
- c++中字元、字串和數字間的轉換C++字元字串
- Python判斷字串是否為字母或者數字(浮點數)Python字串
- 2020-11-13整數轉換為字串 字元反轉字串字元
- isAlnum判斷字元是否為字母數字字元(字母和數字都屬於字母數字字元)字元
- mysql 字串和數字比,字串會隱式轉換為數字0MySql字串
- JavaScript字串轉換數字JavaScript字串
- c++判斷字串全是字母或數字C++字串
- Java如何將字串轉換為字元陣列?Java字串字元陣列
- 判斷字串是否為空字串
- PHP 判斷一個字元是否在字串中PHP字元字串
- C#判斷輸入為數字C#
- postgresql判斷是否為數字的方法SQL
- {{rateTime}}大括號裡面的數字轉換為字串(日期)字串
- 如何在MySQL中使用CONVERT將字串轉換為數字MySql字串
- js判斷字串是否含有特殊字元和emoji表情JS字串字元
- python字串轉換為日期時間Python字串
- JavaScript判斷字串是否為空JavaScript字串
- js判斷字串是否為空JS字串
- java判斷字串是否為空Java字串
- js面試題-找出字串中的數字,並替換為*JS面試題字串
- C#判斷一個字串是否是數字或者含有某個數字C#字串
- 【Go】IP地址轉換:數字與字串之間高效轉換Go字串
- 變數轉化為判斷條件時的各種情況變數
- 原始配置字串進行解析並轉換為字典字串
- php日期時間如何轉換為字串PHP字串
- c++中數字和字串的轉換C++字串
- PHP 將數字轉換為漢字PHP
- js中在將字串數字轉為數字時,使用哪種方式更安全JS字串
- PostgreSQLoracle相容性-字串內嵌NULL字元(空字元)chr(0)轉換為chr(32)SQLOracle字串Null字元
- C#判斷字串是否為日期格式C#字串
- python 判斷變數是數字型還是字元型Python變數字元
- 將數值轉換為字串的函式字串函式
- Python中判斷是否為數字字串的方法是什麼?Python字串
- java將IP地址轉換為數字以及逆向轉換Java