DROP PROCEDURE IF EXISTS get18Id;
/*
功能名称: 将15位xxxx转化为18位返回,非15位xxxx原值返回
作者:xcysj
日期:2016/02/25
参数 IN/OUT 类型 说明
identityCard IN VARCHAR 15位身份证号
retIc OUT VARCHAR 18位身份证号
*/
CREATE PROCEDURE get18Id(IN identityCard VARCHAR(15), OUT retIc VARCHAR(18))
BEGIN
DECLARE id17 VARCHAR(17);
DECLARE id18 VARCHAR(18);
DECLARE v_sum INT;
DECLARE v_y INT;
DECLARE v_i INT;
-- 定义数组存放加权因子(weight factor)
SET @wf = "7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2";
-- 定义数组存放校验码(check code)
SET @cc = "1,0,X,9,8,7,6,5,4,3,2";
SET v_sum = 0;
SET v_y = 0;
SET v_i = 1;
-- 判断传入id长度
IF CHAR_LENGTH(identityCard) <> 15 THEN
SET retIc = identityCard;
ELSE
-- 加上两位年'19'
SET id17 = CONCAT(CONCAT(SUBSTRING(identityCard,1,6),'19'), SUBSTRING(identityCard,7));
-- 十七位数字本体码加权求和
WHILE v_i <= 17 DO
SET v_sum = v_sum + CAST(SUBSTRING(id17,v_i,1) AS INT) * CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(@wf,',',v_i),",",-1) AS INT);
SET v_i = v_i + 1;
END WHILE;
-- 计算模
SET v_y = MOD(v_sum,11);
-- 17位数字 + 通过模得到对应的校验码
SET id18 = CONCAT(id17,SUBSTRING_INDEX(SUBSTRING_INDEX(@cc,",",v_y + 1),",",-1));
SET retIc = id18;
END IF;
END;
CALL get18Id("511702800222130",@id18);
select @id18;
相关推荐
Ubuntu 18.04 部署 Percona XtraDB Cluster 实战指南
Galera Cluster 是一种基于同步复制的多主数据库集群技术,其核心原理是通过 wsrep API 实现事务级全局有序提交与跨节点即时确认,从而保障强一致性(Strong Consistency)和高可用性(HA)。相比传统异步主从,它消除了复制延迟与单点故障风险,技术价值在于满足金融、电商等场景对 RPO=0 和秒级故障自愈的严苛要求。典型应用场景包括订单系统、实时风控、分布式事务协调等需写入强一致性的关键业务。本文聚焦 Ubuntu 18.04 环境下 Percona XtraDB Cluste
HDOJ 1201 18岁生日
HDACM1201 如果他的生日是xxxx年2月29日,若xxxx+18不是润年则输出-1,否则开始判断他是在3月前出生还是在3月后出生,若是3月前出生,则判断今年是不是闰年,是闰年则+1,若是3月后出生则判断下一年是不是闰年,是闰年则+1,依次循环到第17年。import java.util.Scanner;public class Main{ public static void ma
JGUITextField_FormatNumber:格式化输入 手机号(XXX XXXX XXXX) 身份证号(15或者18位XXXXXX XXXXXXXX XXXX) 银行卡号(XXXX XXXX XXXX XXXX XXX ) 此项目主要用于一些号码的格式化输出,中间以空格分隔,删除的时候不会造成鼠标光标位置的混乱
JGUITextField_FormatNumber 格式化输入 手机号(XXX XXXX XXXX) 身份证号(15或者18位XXXXXX XXXXXXXX XXXX) 银行卡号(XXXX XXXX XXXX XXXX XXX ) 此项目主要用于一些号码的格式化输出,中间以空格分隔,删除的时候不会造成鼠标光标位置的混乱。 ##格式化输入 手机号(XXX XXXX XXXX) 身份证号(15或者18位XXXXXX XXXXXXXX XXXX) 银行卡号(XXXX XXXX XXXX XXXX XXX ) 此项目主要用于一些号码的格式化输出,中间以空格分隔,删除的时候不会造成鼠标光标位置的混乱。 具体使用步骤请参照demo的viewcontroller文件: 1.在项目中引入头文件 #import "UITextField+HLNumberFormatTextField.h
Connecting to https://XXXXXXXXXXXXXXXXXXXXXXXX:8440/ca
INFO 2017-08-05 01:14:38,849 HeartbeatHandlers.py:115 - Stop event received INFO 2017-08-05 01:14:38,849 NetUtil.py:125 - Stop event received INFO 2017-08-05 01:14:38,849 ExitHelper.py:53 - Performi
课设报告-超市收银系统 javaweb(附源代码)
超市收银系统由收银员输入顾客的会员卡卡号(若有卡),所购买的货号。从数据库中取出有关价格信息,在把这些信息返回给收银台,同时把收银台的销售总量和有关种类商品的剩余量以及该持卡顾客的消费情况交数据库存储以供查询。另外,对没有卡的消费不记录该顾客的消费情况扥个人信息,如果一个未持卡顾客一次购买满200元,可围棋发放一张会员卡,以后在该商场购物可享受9折优惠。
S7-200SMART系列全套接线说明
SMART200接线方法,输入,输出,模拟量,面板,扩展糟等,并且详细说明接线原理。
mysql存储过程是事务提交_mysql存储过程之事务篇
CREATE PROCEDURE tfer_funds(from_account int, to_account int, tfer_amount numeric(10,2))2 BEGIN3 SET autocommit=0;4 UPDATE account_balance SET balance=balance-tfer_amount WHERE account_id=from...
STM32F405实战:手把手教你实现永磁同步电机无感FOC控制(附完整工程文件)
本文详细介绍了基于STM32F405微控制器实现永磁同步电机无感FOC控制的完整实战方案。文章从硬件搭建、CubeMX配置入手,逐步讲解了FOC核心算法、SVPWM调制,并重点阐述了如何结合HFI高频方波注入与滑模观测器(SMO)实现全速域无感控制。内容涵盖算法原理、代码实现、参数整定及调试技巧,并附有完整工程文件,为开发者提供从理论到实践的全面指导。
关于对MYSQL存储过程传递参数是纯数字还是字符串的判断
1、问题的由来书写MySQL存储过程,有时需要判断传递的某参数是数字还是字母和数字或字母组成的字符串,由于MySQL没有现成的函数,在MSSQL中可以用ISNUMERIC来判断,因此在MYSQL中需要自己写函数来判断了。2、解决办法DELIMITER $$DROP FUNCTION IF EXISTS `funIsNum` $$CREATE FUNCTION `funIsNum`
用 RFC Destination 打通 VS Code 与 ABAP 后端,ABAP 开发连接不只是登录那么简单
本文重点介绍了在VS Code中配置ABAP开发环境时建立RFC destination连接的关键细节。文章指出:1. RFC destination是连接前端开发工具与ABAP后端的核心配置,包含系统类型、客户端、用户名等关键信息;2. 连接方式的选择(RFC/HTTP)由产品形态决定,On-Premise和Private Edition使用RFC,而BTP和Public Cloud使用HTTP;3. 连接创建后需要通过添加工作区文件夹来展示开发对象;4. RFC连接涉及网络可达性、身份认证和开发权限三个
QT如何使用CTK插件搭建应用程序框架?
CTK框架,QT框架,插件系统
Mysql项目实战-ATM
Mysql项目实战-ATM 一、项目需求说明 二、项目代码 项目需求
最近腾讯手机管家a.gray.Bulimia.a病毒提示决解方案
仅供参考(个人问题已解决 未申诉) 用户反馈app提示病毒图如下 然后下载生产包去https://www.virustotal.com/gui/这个网站去检测 果真提示病毒 重新加版本 打了个包 未加固 检测没问有问题 同一个包用360加固之后再检测有问题 ,但是没有a.gray.Bulimia.a报病毒 然后再用应用宝加固检测也没问题,个人以前都是用360加固的,很尴尬啊 最重要的一点的是,更新一个版本号,其余的啥都没改,更新替换手机的原来版本app,腾讯手机.
Hibernate调用存储过程
Hibernate调用存储过程 Hibernate调用存储过程方法一: List list = new ArrayList(); try { session = getCurrentSession(entityClass); SQLQuery query = session.createSQLQuery(procedure); query.setString(0, requestId
Open3D点云数据处理(五):点云、mesh可视化(draw_geometries方法)
本文介绍了Open3D中的draw_geometries可视化方法,可以用于可视化点云和mesh。详细讲述了该方法的各个参数的作用,给出了代码示例。
13、数据来源介绍与操作指南
本文详细介绍了多种数据源的特点、操作步骤及适用场景,包括元数据数据源、MongoDB数据源、Pentaho Data Integration数据源、OLAP数据源、Pentaho分析数据源和OLAP4J数据源。通过流程图和表格对比,帮助用户理解不同数据源的选择与使用方法,并提供了实际应用案例和注意事项,旨在提升数据获取与分析效率,支持高效报告生成。
Mysql入门到精通全集(SQL99)包含关系运算,软考数据库工程师复习首选
本文系统梳理了MySQL数据库的核心知识点,包括数据库基础概念、SQL语句分类、数据操作语言、数据定义语言、事务控制、存储引擎、索引、视图、数据库设计范式等。重点介绍了DQL查询语句的各种用法,如条件查询、分组查询、连接查询等,以及DDL语句的表操作和约束设置。同时详细讲解了触发器、存储过程、变量、流程控制等高级功能,并全面归纳了MySQL内置函数的分类和使用方法。全文结构清晰,内容全面,涵盖了MySQL数据库从基础到高级的核心技术要点,可作为MySQL学习的系统性参考文档。
汉书HE8,好用的汇编代码编写工具
汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大
MySQL — ATM取款机数据库设计(完整版)
/*$$$$$$$$$$$$$创建文件夹$$$$$$$$$$$$$$$$$$*/ USE master GO EXEC xp_cmdshell 'mkdir d:\bank', NO_OUTPUT /*$$$$$$$$$$$$$建库$$$$$$$$$$$$$$$$$$$$$$$$*/ --检验数据库是否存在,如果为真,删除此数据库-- IF exists(SELECT * FROM ...
复分析 阿尔福斯(Ahlfors) 第三版答案 英文
答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案
温度PID控制PLC程序
温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值
Oracle 使用DB_Link同步MySQL数据
Oracle 使用DB_Link同步MySQL数据
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
mysql标准,mysql 标准
1、数据库命名规范,统一:vip_xxxx0、表一旦设计好,字段只允许增加,不允许减少(drop column)1、统一使用INNODB存储引擎,UTF8编码(整个数据库的编码统一为utf8_general_ci,为此不需要建立表的DDL加上特别CHARACTER SET utf8 COLLATE utf8_general_ci);2、需在设计阶段考虑如果访问量非常大,且不做scale out表拆...
如何将mysql设置为服务器_如何将自己的windows设置为mysql服务器
1 用户管理2 mysql>use mysql;3 查看4 mysql> select host,user,password from user ;5 创建6 mysql> create user zx_root IDENTIFIED by ‘xxxxx‘; //identified by 会将纯文本密码加密作为散列值存储7 修改8 mysql>rename ...
Linux(centos 7.5)服务器安装MySQL
1、查看系统是否自带有MySQL rpm -qa | grep -i mysql #查看CentOS是否自带的mysql rpm -e --nodeps xxxx #自带了mysql则执行 2、卸载系统自带的mariadb 虽然CentOS7中没有自带mysql , 但是自带了另外一款数据库mariadb,我们安装mysql的时候会和mariadb产生冲突 , 最好的...
MySQL逻辑语句的应用
【代码】MySQL逻辑语句的应用。
Ubuntu 18.04 cron 实战:从环境变量到日志追踪的可靠定时任务配置
Cron 是 Linux 系统中最基础、最稳定的任务调度机制,其核心原理基于守护进程轮询 crontab 文件并按时间表达式触发命令执行。它不依赖用户登录或图形界面,具备高确定性与低运维侵入性,技术价值在于为基础设施级自动化提供‘开箱即用’的可靠性保障。典型应用场景包括日志轮转、数据库备份、监控采集等系统维护任务。然而在 Ubuntu 18.04 环境中,因 Vixie-cron 实现限制、PATH 环境变量缺失、权限模型严格及日志静默丢弃等问题,极易导致任务静默失败。本文聚焦 Ubuntu 18.04 平
MySQL体系结构与管理
一、工作模型及实例 1.官方定义的MySQL DBA工作内容 #运维DBA: 初级:各版本、各平台安装搭建、升级 中级:体系结构原理,基础管理(启动关闭,初始化配置文件管理,多日志管理,备份与恢复,主从复制(构建,状态监控)) 高级:高可用(MGR、InnoDB Cluster),高性能(优化) #开发DBA 懂至少一门开发语言:Java,python 基本SQL语句深入学习(增删改查),数据库结构设计(建模) 高级SQL:存储过程,函数,触发器,视图,事件 1.MySQL5.7安装部署(二进制安装)
398



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



