工作当中用到的一些有用的函数,记录如下:
1、判断输入是否是数字:
CREATE OR REPLACE FUNCTION fun_isnumber (parmin VARCHAR2)
RETURN NUMBER
IS
val NUMBER;
BEGIN
val := TO_NUMBER (NVL (parmin, 'a'));
RETURN 1;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
2、判断输入是否是手机号码:
create or replace function fun_IsMobile(
vcSource in varchar2
) return number is
Result number;
begin
if vcSource is null then
Result := 0;
else
if length(vcSource)<>11 then
Result := 0;
else
if fun_IsNumber(vcSource)=0 then
Result := 0;
else
if substr(vcSource,1,1)<>'1' then
Result := 0;
else
Result := 1;
end if;
end if;
end if;
end if;
return(Result);
end fun_IsMobile;
3、ip地址转换:
create or replace function ip_convert(strip in String) return integer
as
ip1 varchar2(10);
ip2 varchar2(10);
ip3 varchar2(10);
ip4 varchar2(10);
temp varchar2(20);
result integer;
begin
temp:=strip;
ip1:=SUBSTR(temp, 1,INSTR (temp, '.', 1,1)-1);
ip2:= substr(temp,INSTR (temp, '.', 1,1)+1,INSTR (temp, '.', 1,2)-length(ip1)-2 ) ;
ip3:= substr(temp,INSTR (temp, '.', 1,2)+1,INSTR (temp, '.', 1,3)-length(ip1)-length(ip2)-3 ) ;
ip4:= substr(temp,INSTR (temp, '.', 1,3)+1,length(temp)-length(ip1)-length(ip2)-4 ) ;
result:=to_number(ip1)*256*256*256+to_number(ip2)*256*256+to_number(ip3)*256+to_number(ip4);
return(result);
end ip_convert;
4、随机生成指定长度的字符串(字母+数字):
create or replace function fun_gen_pass return varchar2 is
v varchar2(6);
vChar varchar2(50);
n number(2);
r number(10);
t number(2);
begin
vChar := 'ABCDEFGHIJKLMNPQRSTUVWXYZ123456789';
n := 1;
loop
r := trunc(dbms_random.value*34);
if r>=1 and r<=34 then
v := v||substr(vChar,r,1);
n := n+1;
end if;
if n=7 then
select count(*)
into t
from m_club_pass
where pass=v;
if t>0 then
n := 1;
v := '';
end if;
end if;
exit when n=7;
end loop;
return v;
end;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25618347/viewspace-714081/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25618347/viewspace-714081/
实用的编程函数与技巧
4330

被折叠的 条评论
为什么被折叠?



