sqlserver
isnumeric 校驗時
認為科學
計數法、
貨幣符號均為
合法,如果
此類資料
不加轉換
直接插入資料庫
的float、
decimal等
欄位中是
會出異常。以下函式可用於校驗字串是否為數
字型別,
僅允許輸入+、-、0-9、.字元,
包含最大值校驗
--引數1:型別varchar 被校驗字串
--引數2:型別int 整數字數長度
--引數3:型別int 小數字數長度,若為負數既不校驗小數字數長度
--返回值:型別int 返回"1"既檢驗正確,"0"既檢驗不通過(不是有效的數字型別或不符合規定的長度規範
)if object_id('is_number_new') is not null
drop
function
[dbo
].[is_number_new
]alter
function
[dbo
].[is_number_new
](@strvar
varchar(100),
@iint,
@jint)
returns
intas
begin
if (isnumeric(@strvar) =
0)--
系統函式過濾絕大部分異常資料,但對於科學計數法等無法過濾
return
0else
begin
if (@j=0)
begin
if (patindex('
%[^0-9|+|-]%
',@strvar) >
0) --
整數校驗,只允許+、-、數字字元
return
0end
else
begin
if (patindex('
%[^0-9|.|+|-]%
',@strvar) >
0) --
帶小數校驗
return
0end
set@strvar
=replace(replace(@strvar,'
-',''),'
+','')
--最大值校驗
if (charindex('
.',@strvar) =
0)begin
if (len(@strvar) >
@i)return
0end
else
begin
if ((charindex('
.',@strvar) -
1) >
@i)return
0else
if (@j
>=
0)begin
if (@j
-datalength(substring(@strvar,charindex('
.',@strvar) +
1,99)) <
0)return
0end
endend
return
1end
sql server 中語法校驗
在今天的培訓考試過程中,我提出乙個擴充套件題,要求對提交的sql進行語法校驗.其實這個題很簡單,根本不需要用正規表示式去做語法分析,可以直接使用sql server自帶的功能.不多說,上 alter proc sp checksql sql varchar 8000 error varchar ma...
IFS日期校驗與數字校驗
在ifs 後台有時從外部匯入資料,直接資料oracle報錯資訊可讀性較差,現改進校驗過程,如下 procedure validate date value in varchar2,format in varchar2 is tmp date date begin tmp date to date v...
js 校驗數字例子
校驗數字例子 function isnumberic param if d d test param isnumberic 0.1q 另附 驗證數字的正規表示式集 驗證數字 0 9 驗證n位的數字 d 驗證至少n位數字 d 驗證m n位的數字 d 驗證零和非零開頭的數字 0 1 9 0 9 驗證有兩...