SQL code

GO
/****** Object:  UserDefinedFunction [ro].[wj_ValidateIDC]    Script Date: 09/29/2012 11:23:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--验证身份证号码
--编者:
--创建日期:2012-09-18
--参数:@idc 身份证号
create FUNCTION [ro].[wj_ValidateIDC]
(@idc varchar(18)
)RETURNS BIT
AS
BEGINDECLARE @validFactors VARCHAR(17),@validCodes VARCHAR(11),@i TINYINT,@iTemp INTSELECT @validFactors='79A584216379A5842',@validCodes='10X98765432',@i=1,@iTemp=0--验证校验位
 --根据担保数据库增加条件,否则报错,by WJ
 IF (@idc LIKE 'x%' OR @idc LIKE '*%' OR @idc LIKE 'T%')RETURN(0) IF LEN(@idc)<>15 AND LEN(@idc)<>18--身份证号只有15或18位
  RETURN(0)IF LEN(@idc)=15  --如果是15位身份证 则只验证日期
     IF (ISDATE('19'+SUBSTRING(@idc,7,6))=0 and '19'+SUBSTRING(@idc,7,6) between '1900-01-01' and '2010-01-01')RETURN(0)ELSERETURN(1)--18位身份证 验证日期 校验位
 IF (ISDATE(SUBSTRING(@idc,7,8))=0 and SUBSTRING(@idc,7,6) between '1900-01-01' and '2010-01-01')--验证日期
    RETURN(0)---验证校验位开始
 WHILE @i<18BEGINSELECT @iTemp=@iTemp+CAST(SUBSTRING(@idc,@i,1) AS INT)*(CASE SUBSTRING(@validFactors,@i,1) WHEN 'A' THEN 10 ELSE SUBSTRING(@validFactors,@i,1) END),@i=@i+1ENDIF SUBSTRING(@validCodes,@iTemp%11+1,1)=RIGHT(@idc,1)RETURN 1ELSERETURN 0RETURN 0
ENDGO
/****** Object:  UserDefinedFunction [ro].[wj_ValidateYYZZNo]    Script Date: 09/29/2012 11:25:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--功能:验证营业执照号
--编者:
--创建日期:2012-09-20
--参数:@ZzNo 营业执照号
create FUNCTION [ro].[wj_ValidateYYZZNo]
(@ZzNo varchar(15)
)RETURNS BIT
AS
BEGINDECLARE @m INT, @n INT, @s INT , @p INT ,@i INT ,@result INT SELECT @m=10,@n=11,@p=@mIF (LEN(LTRIM(RTRIM(@ZzNo)))=13 AND ISNUMERIC(@ZzNo) =1) beginRETURN 1END IF (ISNUMERIC(LTRIM(RTRIM(@ZzNo)))=0) beginRETURN 0endIF (LEN(LTRIM(RTRIM(@ZzNo)))<>15) beginRETURN 0ENDSET @i=1WHILE @i <=14BEGIN SET @s = SUBSTRING(@ZzNo,@i,1)SET @p = @p+@sSET @p =@p%@mIF @p = 0BEGINSET @p= @mEND SET @p = @p *2 SET @p = @p%@nSET @i=@i+1END SET @p = @p+SUBSTRING(@ZzNo,15,1)SET @p = @p%@mIF @p=1 BEGINSET @result =1END ELSE BEGINSET @result =0end
RETURN @result
ENDGO
/****** Object:  UserDefinedFunction [ro].[wj_ValidateZZJGNo]    Script Date: 09/29/2012 11:26:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--功能:组织机构号验证
--编者:
--创建日期:2012-09-20
--参数:@ZZJGNo 组织机构号
ALTER FUNCTION [ro].[wj_ValidateZZJGNo]
(@ZZJGNo varchar(20)
)RETURNS BIT
AS
BEGIN
DECLARE @c varchar(20),@zz int,@z int,@i INT,@jaz VARCHAR(30),@C9 VARCHAR(10)
SET @ZZJGNo = UPPER(@ZZJGNo)SET @i=1
WHILE @i <=8
BEGIN
SET @c= SUBSTRING(@ZZJGNo,@i,1)
IF @c>='A' AND @c<='Z'
BEGINSET @z = (ASCII(@c)-55) * (CASE @i WHEN 1 THEN 3 WHEN 2 THEN 7 WHEN 3 THEN 9 WHEN 4 THEN 10 WHEN 5 THEN 5 WHEN 6 THEN 8 WHEN 7 THEN 4 WHEN 8 THEN 2 END)
END
ELSE IF @c>='0' AND @c<='9'
BEGINSET @z=CONVERT(NUMERIC,@c) * (CASE @i WHEN 1 THEN 3 WHEN 2 THEN 7 WHEN 3 THEN 9 WHEN 4 THEN 10 WHEN 5 THEN 5 WHEN 6 THEN 8 WHEN 7 THEN 4 WHEN 8 THEN 2 END)END
ELSE
BEGIN
RETURN 0
END
SET @zz = ISNULL(@zz,0)+@z
SET @i = @i+1
ENDSET @jaz = 11-(@zz%11)
IF @jaz=10
BEGIN
SET @C9 = 'X'
END
ELSE IF @jaz =11
BEGIN
SET @C9='0'
END
ELSE
BEGIN
SET @C9=LTRIM(RTRIM(@jaz))
END IF @ZZJGNO = SUBSTRING(@ZZJGNO,1,8) +@C9
BEGINRETURN 1
END
IF @ZZJGNO = SUBSTRING(@ZZJGNO,1,8)+'-'+@C9
BEGINRETURN 1
END
IF @ZZJGNO = SUBSTRING(@ZZJGNO,1,8) + '—' +@C9
BEGINRETURN 1
END
IF @ZZJGNO = SUBSTRING(@ZZJGNO,1,8) +' '+@C9
BEGINRETURN 1
END RETURN 0
END

身份证、组织机构代码及营业执照号校验函数相关推荐

  1. 区分统一社会信用代码、组织机构代码、注册号

    区分统一社会信用代码.组织机构代码.注册号 背景 2015年6月4日,国务院常务会议决定实施法人和其他组织统一社会信用代码制度,提升社会运行效率和信用.法人和其他组织统一社会信用代码相当于让法人和其他 ...

  2. mysql身份证号校验函数

    CREATE DEFINER=`tm` FUNCTION `check_id_card`(v_card varchar(32)) RETURNS varchar(32) CHARSET utf8 BE ...

  3. 校验全国组织机构代码是否合法

    根据网络整理,经过实际应用. package com.brofe.util; import java.util.HashMap;import java.util.Map;import java.uti ...

  4. python结合正则表达式及校验码生成算法校验:电话号码、营业执照、组织机构代码证、税务登记证、统一社会信用代码证、非盈利性企业登记证号码的函数

    #!/usr/bin/env python3 import re from datetime import datetimedef check_phone(phone):'''三大运营商和虚拟运营商的 ...

  5. C语言基础入门48篇_26_身份证号校验程序(以身份证的校验方式是实例加深对数组及函数封装的理解、字符-‘0‘得到字符对应的int类型数字)

    本篇根据以二代身份证的校验方式是实例加深对数组及函数封装的理解 1. 第二代身份证号的组成 第二代身份证号为18位,各位数字对应了不同的信息(以下顺序从左往右): AABBCCYYYYMMDDXXXV ...

  6. 正则表达式验证手机号码、身份证号码、邮箱、统一社会信用代码/营业执照号

    1.  验证手机号码 /^1[3456789]\d{9}$/ 2.  验证身份证号码 /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[ ...

  7. hive自定义函数实现组织机构代码、统一社会信用代码校验

    一.根据中华人民共和国国家标准全国组织机构代码(9位)编制规则实现规则校验 1.组织机构代码编码规则 1.1组织机构代码的组成 全国组织机构代码由八位数字(或大写拉丁字母)本体代码和一位数字(或大写拉 ...

  8. 组织机构代码和统一社会信用代码校验规则以及java校验工具类

    组织机构代码 编码规则编辑 1.全国组织机构代码由八位数字(或大写拉丁字母)本体代码和一位数字(或大写拉丁字母)校验码组成. 本体代码采用系列(即分区段)顺序编码方法. 校验码按照以下公式计算: C9 ...

  9. 全网唯一正确身份证和社统一社会信用代码自定义表单校验器(身份证校验和社统一社会信用代码校验)

    话不多说,直入正题: 1.工具类: import * as moment from 'moment'; import {isUndefined} from 'util'; import {Abstra ...

  10. 使用 python 进行身份证号校验

    使用 python 代码进行身份证号校验 先说,还有很多可以优化的地方. 1.比如加入15位身份证号的校验,嗯哼,15位的好像没有校验,那就只能提取个出生年月日啥的了. 2.比如判断加入地址数据库,增 ...

最新文章

  1. 边缘计算芯片格局分析
  2. alter system|session set events转储
  3. MFC中修改程序图标
  4. 算法导论读书笔记(8)
  5. Jira filter subscribe issues
  6. 线条边框简笔画图片大全_超治愈萌系手帐素材大全 美食旅游花草人物花边都备齐了...
  7. 微服务升级_SpringCloud Alibaba工作笔记0011---Gateway常用的predicate
  8. ubuntu物理机上搭建Kubernetes集群 -- 准备
  9. run rhadoop
  10. “在禁用 UAC 时,无法激活此应用”问题解决
  11. request爬虫爬取电影并利用pyqt5进行本地播放(失败品)
  12. matlab求两向量夹角_MATLAB概率和统计(2)
  13. 计算机仿真撤稿,LOL云顶之弈11.5天神裁决天使阵容攻略 新版本裁决天使运营思路...
  14. Android系统基础介绍
  15. 进程间通信(IPC (Inter-process communication))
  16. android——databinding中字符串的拼接处理、TextView显示的值随activity的属性值改变同时改变--LiveData、双向绑定过滤器、监听某个值的改变
  17. Python变量命名用法(一般变量、常量、私有变量、内置变量)
  18. electron打开文件的几种实现方式
  19. 常见LED贴膜屏规格尺寸,选择透明贴膜屏需注意的事项
  20. 区别辨析(选择)choose、select、elect、pick、prefer、opt

热门文章

  1. XiaomiRouter自学之路(02-软硬件环境搭建)
  2. 2022-03-25 redis组建哨兵及主从高可用的failover
  3. 1分钟让你的App 适配 锤子OneStep
  4. 【侯捷】C++ STL
  5. Ubuntu fatal: 无法访问 ‘https://github.com/xxxxx/xxxxx‘:Failed to connect to github.com port 443: 连接超时
  6. error: resource drawable/edit_text_bg (aka com.example.track:drawable/edit_text_bg) not found.
  7. 论文编写工具使用(1)latex软件
  8. 手机便签软件哪个好用?哪种手机便签软件好使用
  9. 高通骁龙845与骁龙710处理器参数对比分析
  10. 处理器哪个好_对比骁龙730G、765G、猎户座980、天玑1000处理器,性能哪个好?