CREATE OR REPLACE FUNCTION checkphone (phone IN VARCHAR2)
RETURN INT
IS
v_regstr Varchar2(2000):='^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$';
Begin
/*
wzh 20091124 验证 固定电话 如0523-83828999
*/
IF REGEXP_LIKE (phone, v_regstr)
THEN
RETURN 1;
Else
RETURN 0;
END IF;
EXCEPTION
WHEN OTHERS
Then
RETURN 0;
END checkphone;
其实这个很简单,就是一个正则表达式,加一个oracle内置的函数REGEXP_LIKE,这个函数是这样用的如: Select * From Dual Where Regexp_Like('0523-83828999',
'^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$');
呵呵,如果给了你便利,顶顶我啊!
RETURN INT
IS
v_regstr Varchar2(2000):='^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$';
Begin
/*
wzh 20091124 验证 固定电话 如0523-83828999
*/
IF REGEXP_LIKE (phone, v_regstr)
THEN
RETURN 1;
Else
RETURN 0;
END IF;
EXCEPTION
WHEN OTHERS
Then
RETURN 0;
END checkphone;
其实这个很简单,就是一个正则表达式,加一个oracle内置的函数REGEXP_LIKE,这个函数是这样用的如: Select * From Dual Where Regexp_Like('0523-83828999',
'^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$');
呵呵,如果给了你便利,顶顶我啊!