今天在資料庫裡做資料運算時(資料都為0以上),發現報無效數字,之前也是經常遇到這種錯誤,一直沒有做過整理;
解決辦法:
1.查出非資料的字段,但是沒查到
select * from 表 where replace(表字段,'0123456789.','') is null;
2.將空格清除掉(換行,製表符,空格)
update 表 set 表字段 = regexp_replace(表字段,'\s','');
再對空字段做轉換,問題已經解決
select decode(nvl(字段,0),0,0,字段/10) from dual
ps:另外寫了個函式,方便以後檢視空格具體是什麼字元
--sql檢視
select replace(
replace(
replace(
replace (' 這 個 是資料字段',chr(9),'製表符'),
chr(10),'換行符'),
chr(13),'回車'),
chr(32),'空格') from dual;
create or replace function viewchr(str in varchar2) return varchar2 is
--顯示表裡的空格
result varchar2(400);
begin
select
replace(
replace(
replace(
replace (str,chr(9),'製表符'),
chr(10),'換行符'),
chr(13),'回車'),
chr(32),'空格') into result
from soldier_a;
return(result);
end viewchr;
Oracle自定義函式
語法如下 create or replace function function name argment type,argment type return return type 返回資料的型別 變數的申明,比如 stryuan varchar2 150 begin function body 函...
oracle 自定義函式
下面是乙個前輩寫的判斷是否是手機號的函式 create or replace function ismobile pmsg varchar2 return number isvprefix varchar2 20 vlen number begin vlen lengthb pmsg if vlen...
Oracle自定義函式
二 刪除自定義函式 三 應用經驗 在oracle資料庫中,為了實現特定的功能,可以自定義函式,就像c c 語言,除了系統的庫函式,程式設計師還會編寫很多自定義的函式。create or replace function 函式名 引數1 模式 資料型別,return 資料型別 as 定義區域性變數。變...