DB2中15位与18位身份证号码转换过程
来源:互联网 发布:电脑系统监控软件 编辑:程序博客网 时间:2024/06/07 05:49
CREATE PROCEDURE "ZHCX"."PROC_GETID" (OUT OUTARG VARCHAR(60), IN sfz VARCHAR(60))
LANGUAGE SQL
READS SQL DATA
BEGIN
declare osfz VARCHAR(60);
declare i int;
declare ai int;
declare wi int;
declare v_sum int;
declare v_mod int;
declare result int;
DECLARE EXIT HANDLER FOR SQLEXCEPTION SET OUTARG=sfz;
set osfz = sfz;
set v_sum = 0;
IF length(osfz) = 15 then
set osfz = substr(osfz,1,6) || '19' || substr(osfz,7,9);
set i = 2;
while i <= 18
do
set ai = cast(substr(osfz,19 - i,1) as int);
set wi = mod(POWER (2, (i - 1)),11) ;
set v_sum = v_sum + ai * wi;
set i = i + 1;
end while;
set v_mod = mod(v_sum,11) ;
set result = 12 - v_mod;
IF result >= 10 then
IF result = 10 then
--RETURN osfz || 'X';
SET OUTARG=osfz || 'X';
ELSE
set result = result - 11;
--RETURN osfz || ltrim(cast(result as char));
SET OUTARG=osfz || ltrim(cast(result as char));
end if;
ELSE
--RETURN osfz || ltrim(cast(result as char));
SET OUTARG=osfz || ltrim(cast(result as char));
end if;
ELSE if length(osfz) = 18 then
--RETURN substr(osfz,1,6) || substr(osfz,9,9);
SET OUTARG=substr(osfz,1,6) || substr(osfz,9,9);
ELSE
--RETURN sfz;
SET OUTARG=sfz;
end if;end if;
SET OUTARG=sfz;
END
- DB2中15位与18位身份证号码转换过程
- 身份证号码15位到18位的转换
- Java身份证号码验证及将15位转换18位
- js中15位及18位身份证号码的校验
- 15位身份证号码转换成18位身份证号码(java代码)
- excel表格中18位身份证号码如何转换成出生日期
- 身份证号码15位升18位(C#)
- 身份证号码15位升18位(C#)
- 身份证号码15位升18位(C#)
- 身份证号码15位升18位(C#)
- 15位身份证号码转18位
- 身份证号码15位升18位(C#)
- 身份证号码15位升18位(C#)
- 身份证号码15位转18位
- 身份证号码15位升18位规则
- 身份证号码15位升18位
- 身份证号码15位升18位身份证18位验证
- 身份证号转换15位与18位
- 深圳市租房提取住房公积金攻略
- s3c2410_gpio_cfgpin函数解析
- flex tree 的使用 ArrayCollection为数据源
- 学习动态代理stepbystep(1)
- Java数据结构和算法中文第二版 随书代码和应用程序 压缩包
- DB2中15位与18位身份证号码转换过程
- 编写苹果游戏中心应用程序(翻译 1.8 获取本地玩家的好友信息)
- Oracle 动态性能视图
- jquery导航栏下拉选择源代码。
- 关于js滚动条
- Tree 添加节点 XML提供数据源
- Android application对象的使用 全局变量
- 控制IO端口 s3c2410_gpio_setpin()的使用 .
- 内存还有CPU带宽如何计算