ITPub博客

首页 > 数据库 > Oracle > oracle 检验身份证号是否正确存储过程

oracle 检验身份证号是否正确存储过程

Oracle 作者:racychang 时间:2013-11-28 14:49:00 0 删除 编辑

create or replace procedure p_check_id_number(p_number varchar2) is  type tbl_t is table of number;  my_tbl     tbl_t := tbl_t(7,                            9,                            10,                            5,                            8,                            4,                            2,                            1,                            6,                            3,                            7,                            9,                            10,                            5,                            8,                            4,                            2); --初始化  i          number := 0;  sum_result number := 0;  sub_str    number;begin  for i in 1 .. length(p_number) - 1 loop    sub_str    := substr(p_number, i, 1);    sum_result := sum_result + sub_str * my_tbl(i);  end loop;  sub_str := mod(sum_result, 11);  select decode(sub_str,                0,                1,                1,                0,                2,                'X',                3,                9,                4,                8,                5,                7,                6,                6,                7,                5,                8,                4,                9,                3,                10,                2)    into sum_result    from dual;  if substr(p_number, length(p_number), 1) <> sum_result then    dbms_output.put_line('身份证号为正确的身份证号');  else    dbms_output.put_line('身份证号为不正确的身份证号');  end if;end;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/1859040/viewspace-1109201/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 给远远做的美化
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-03-20

最新文章