Oracle 身份证校验
SELECT SUBSTR('&AI', 0, 17) ||
TRANSLATE(DECODE(MOD(SUM(SUBSTR(WI,
REGEXP_INSTR(WI, ' ', 1, I) + 1,
REGEXP_INSTR(WI, ' ', 1, I + 1) -
REGEXP_INSTR(WI, ' ', 1, I) - 1) *
SUBSTR(AI, I, 1)),
11),
10,
'a',
MOD(SUM(SUBSTR(WI,
REGEXP_INSTR(WI, ' ', 1, I) + 1,
REGEXP_INSTR(WI, ' ', 1, I + 1) -
REGEXP_INSTR(WI, ' ', 1, I) - 1) *
SUBSTR(AI, I, 1)),
11)),
'0123456789a',
'10X98765432')
FROM (SELECT '&AI' AI,
' 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 ' WI,
ROWNUM I
FROM DUAL
CONNECT BY ROWNUM < 18);
SELECT SUBSTR('&AI', 0, 17) ||
TRANSLATE(DECODE(MOD(SUM(MOD(POWER(2, 18 - I), 11) *
SUBSTR(AI, I, 1)),
11),
10,
'a',
MOD(SUM(MOD(POWER(2, 18 - I), 11) * SUBSTR(AI, I, 1)),
11)),
'0123456789a',
'10X98765432')
FROM (SELECT '&AI' AI, ROWNUM I FROM DUAL CONNECT BY ROWNUM < 18);
SELECT SUBSTR('&AI', 0, 17) ||
REPLACE(MOD(12 -
MOD(SUM(MOD(POWER(2, 18 - I), 11) * SUBSTR(AI, I, 1)),
11),
11),
'10',
'X')
FROM (SELECT '&AI' AI, ROWNUM I FROM DUAL CONNECT BY ROWNUM < 18);
Oracle 身份证校验的更多相关文章
- oracle 身份证校验函数
1.正则表达式写法: CREATE OR REPLACE FUNCTION Func_checkidcard (p_idcard IN VARCHAR2) RETURN INT IS v_regstr ...
- 篇二:JS身份证校验
身份证校验 function identityCodeValid(code) { var city={11:"北京",12:"天津",13:"河北&q ...
- Powerbuilder编写身份证校验码
public function boolean of_calc_cardid_verifycode (string as_cardid, ref string as_verifycode); /* 计 ...
- java实现身份证校验
原文来自:java教程网 题目:身份证校验 身份证校验 如果让你设计个程序,用什么变量保存身份证号码呢?长整数可以吗?不可以! 因为有人的身份证最后一位是"X" 实 ...
- 最严格的身份证校验(JavaScript版)
在JavaWeb研发过程中为了获取有效的用户信息,校验其数据的有效性非常是必要,以下贴出在项目中用到的关于身份证的校验: <!DOCTYPE HTML PUBLIC "-//W3C// ...
- 身份证校验程序(下)- 零基础入门学习Delphi49
身份证校验程序 让编程改变世界 Change the world by program [caption id="attachment_2699" align="alig ...
- 身份证校验程序(上)- 零基础入门学习Delphi48
身份证校验程序 让编程改变世界 Change the world by program [caption id="attachment_2699" align="alig ...
- 完美实现身份证校验 js正则
注意: 1.只针对18为身份证号码进行校验,现在15位的应该很少了, 2.不区分xX大小写, 3.出生年份1900-2099,每月的天数也进行相关验证(考虑的闰月的情况), 4.校验规则详见,这个写的 ...
- Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码正则表达式
Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正则表达式 ============================== ©Copyright 蕃薯耀 2017年11 ...
随机推荐
- VAssistX使用小窍门
日常使用中的一些VAssistX使用小窍门,简单总结下 一,修改VAssistX默认缓存文件路径,防止默认C盘被占用空间过大 1. 打开注册表HKCU\Software\Whole Tomato,新 ...
- JavaScript小知识
1.<script>标签的出现使整个页面因脚本解析.运行而出现等待: 2.合并脚本,每个 HTTP请求都会产生额外的性能负担,下载一 个 100KB 的文件比下载四个 25KB的文件要快: ...
- npm 重点小结
npm作为javascript一个用得比较广的包管理工具,已经集成在了node里面,基本一安装node就可以用npm了,十分方便.这里的小结主要沿着官方文档的思路,挑出一些比较重点的,平时常用的部分进 ...
- php实现只保留mysql中最新1000条记录
这篇文章主要介绍了php实现只保留mysql中最新1000条记录的方法和相关示例及数据库结构,十分的全面,有需要的小伙伴可以参考下. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 1 ...
- jquery 序列化
//生成发件人Json信息 function buildSenderInfoJson() { var sendName = $("#SendName").val(); var se ...
- MFC 不让程序显示在任务栏上
如果是对话框程序直接在对话框的 初始化时,修改样式 ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW); 但是对于多文档或是单文档,则没有对应的对话框样式需 ...
- 打水印 Imagename_biao是水印文件 ImgName是原图
/** * 打水印 Imagename_biao是水印文件 ImgName是原图 * @param Imagename_biao * @param ImgName */ public static v ...
- 一步一步学WebSocket (一) 初识WebSocket
众所周知,Http协议是无状态的,并且是基于Request/Response的方式与服务器进行交互,也就是我们常说的单工模式.但是随着互联网的发展,浏览器与服务端进行双向通信需求的增加,长轮询向服务器 ...
- iOS 利用for循环创建九宫格
// 利用for循环创建九宫格 - (void)createScratchableLatex{ // 总列数 ; // 每一格的尺寸 CGFloat cellW = (self.frame.size. ...
- Linux QT
Check system version 1. cat /proc/version mike@sp-ThinkPad-X220:~$ cat /proc/versionLinux version 3 ...