位身份证升级为18位并查询其信息

位身份证升级为18位并查询其信息

ID:23000490

大小:93.50 KB

页数:5页

时间:2018-11-02

位身份证升级为18位并查询其信息_第1页
位身份证升级为18位并查询其信息_第2页
位身份证升级为18位并查询其信息_第3页
位身份证升级为18位并查询其信息_第4页
位身份证升级为18位并查询其信息_第5页
资源描述:

《位身份证升级为18位并查询其信息》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、--15位身份证升级为18位并查询其信息createorreplaceproceduref_changecard(p_cert_numinvarchar2)asv_cert_numvarchar2(30);v_typevarchar2(20);v_sumvarchar2(10);--v_sum_mvarchar2(10);v_yuvarchar2(4);v_newvarchar(30);v_nianvarchar(4);v_yuevarchar(4);v_rivarchar(4);v_sexvarchar2(2);v_sfvarchar2(10);v_sf_fvarchar2(4);-

2、-v_yu_yvarchar2(4);beginexecuteimmediate'selectlength(:p_cert_num)fromdual'intov_typeusingp_cert_num;executeimmediate'select(selectsubstr((select:p_cert_numfromdual),1,6)fromdual)

3、

4、19

5、

6、(selectsubstr((select:p_cert_numfromdual),7,9)fromdual)fromdual'intov_cert_numusingp_cert_num,p_cert_num;--判断身份

7、证是否为15位ifv_type<>15thendbms_output.put_line('请输入证件号为15位的身份证信息');else--校验取余v_sum:=substr(v_cert_num,1,1)*7+substr(v_cert_num,2,1)*9+substr(v_cert_num,3,1)*10+substr(v_cert_num,4,1)*5+substr(v_cert_num,5,1)*8+substr(v_cert_num,6,1)*4+substr(v_cert_num,7,1)*2+substr(v_cert_num,8,1)*1+substr(v_cert_

8、num,9,1)*6+substr(v_cert_num,10,1)*3+substr(v_cert_num,11,1)*7+substr(v_cert_num,12,1)*9+substr(v_cert_num,13,1)*10+substr(v_cert_num,14,1)*5+substr(v_cert_num,15,1)*8+substr(v_cert_num,16,1)*4+substr(v_cert_num,17,1)*2;--取出生年月v_nian:=substr(v_cert_num,7,4);v_yue:=substr(v_cert_num,11,2);v_ri:=s

9、ubstr(v_cert_num,13,2);--取性别v_sex:=substr(v_cert_num,17,1);--取地区v_sf:=substr(v_cert_num,1,6);v_sf_f:=substr(v_cert_num,1,2);--7910584216379105842v_yu:=mod(v_sum,11);--012345678910,10X98765432--得出新18位证件号ifv_yu=0thenv_new:=v_cert_num

10、

11、'1';elsifv_yu=1thenv_new:=v_cert_num

12、

13、'0';elsifv_yu=2thenv_new:

14、=v_cert_num

15、

16、'X';elsifv_yu=3thenv_new:=v_cert_num

17、

18、'9';elsifv_yu=4thenv_new:=v_cert_num

19、

20、'8';elsifv_yu=5thenv_new:=v_cert_num

21、

22、'7';elsifv_yu=6thenv_new:=v_cert_num

23、

24、'6';elsifv_yu=7thenv_new:=v_cert_num

25、

26、'5';elsifv_yu=8thenv_new:=v_cert_num

27、

28、'4';elsifv_yu=9thenv_new:=v_cert_num

29、

30、'3';elsifv_yu=10t

31、henv_new:=v_cert_num

32、

33、'2';endif;--判断新产生的18位身份证号码真伪依据月份日期判断只能。。。。ifv_yuebetween'01'and'12'thencasewhenv_ribetween'01'and'31'thendbms_output.put_line('您的18位身份证号是:'

34、

35、v_new);dbms_output.put_line('您的生日是:'

36、

37、v_nian

38、

39、'年'

40、

41、v_yue

42、

43、'月'

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。