达梦数据库用函数实现身份证合法校验

达梦数据库用函数实现身份证合法校验

拿走不谢~

CREATE OR REPLACE FUNCTION CHECK_IDCARD(A_SFZ IN VARCHAR2)
RETURN VARCHAR2
IS
TYPE WEIGHT_TAB IS VARRAY(17) OF NUMBER; 
TYPE CHECK_TAB IS VARRAY(11) OF CHAR;
WEIGHT_FACTOR WEIGHT_TAB := WEIGHT_TAB(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
CHECK_CODE CHECK_TAB := CHECK_TAB('1','0','X','9','8','7','6','5','4','3','2');
SUM_VAL NUMBER := 0;
MOD_VAL NUMBER;
BEGIN
IF LENGTH(A_SFZ) != 18 THEN RETURN '-1'; END IF; -- 长度校验
FOR I IN 1..17 LOOP
IF SUBSTR(A_SFZ,I,1) NOT BETWEEN '0' AND '9' THEN RETURN '-1'; END IF; -- 数字检查
SUM_VAL := SUM_VAL + TO_NUMBER(SUBSTR(A_SFZ,I,1)) * WEIGHT_FACTOR(I); -- ORACLE数组下标访问
END LOOP;
MOD_VAL := MOD(SUM_VAL,11);
IF SUBSTR(A_SFZ,18,1) != CHECK_CODE(MOD_VAL+1) THEN RETURN '0'; END IF; -- 校验码比对
RETURN '1'; -- 验证通过
END;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/76503.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3dmax的python通过普通的摄像头动捕表情

1、安装python 进入cdm,打python要能显示版本号 >>>(进入python提示符模式) import sys sys.path显示python的安装路径, 进入到python.exe的路径 在python目录中安装(ctrlz退出python交互模式) 2、pip install mediapipe…

国产Linux统信安装mysql8教程步骤

系统环境 uname -a Linux FlencherHU-PC 6.12.9-amd64-desktop-rolling #23.01.01.18 SMP PREEMPT_DYNAMIC Fri Jan 10 18:29:31 CST 2025 x86_64 GNU/Linux下载离线安装包 浏览器下载https://downloads.mysql.com/archives/get/p/23/file/mysql-test-8.0.33-linux-glibc2.28…

Vite 权限绕过导致任意文件读取(CVE-2025-32395)(附脚本)

免责申明: 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 前言…

poi-tl

官网地址 Poi-tl Documentationword模板引擎https://deepoove.com/poi-tl github 地址 https://github.com/Sayi/poi-tl/tree/master gitcode 加速地址 GitCode - 全球开发者的开源社区,开源代码托管平台GitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码…

操作系统 4.1-I/O与显示器

外设工作起来 操作系统让外设工作的基本原理和过程,具体来说,它概括了以下几个关键步骤: 发出指令:操作系统通过向控制器中的寄存器发送指令来启动外设的工作。这些指令通常是通过I/O指令(如out指令)来实现…

琥珀扫描 2.0.5.0 | 文档处理全能助手,支持扫描、文字提取及表格识别

琥珀扫描是一款功能强大的文档处理应用程序。它不仅仅支持基本的文档扫描功能,还涵盖了文字提取、证件扫描、表格识别等多种实用功能。无论是学生、职员还是教师,都能从中找到适合自己的功能。该应用支持拍照生成电子件,并能自动矫正文档边缘…

jQuery UI 小部件方法调用详解

jQuery UI 小部件方法调用详解 引言 jQuery UI 是一个基于 jQuery 的用户界面和交互库,它提供了一系列小部件,如按钮、对话框、进度条等,这些小部件极大地丰富了网页的交互性和用户体验。本文将详细介绍 jQuery UI 中小部件的方法调用,帮助开发者更好地理解和应用这些小部…

浮点数比较在Eigen数学库中的处理方法

浮点数比较在Eigen数学库中的处理方法 在Eigen数学库中进行浮点数比较时,由于浮点数的精度问题,直接使用运算符通常不是推荐的做法。Eigen提供了几种更安全的方法来进行浮点数比较: 1. 近似相等比较 使用isApprox()函数进行近似比较&#…

Linux-----驱动

一、内核驱动与启动流程 1. Linux内核驱动 Nor Flash: 可线性访问,有专门的数据及地址总线(与内存访问方式相同)。 Nand Flash: 不可线性访问,访问需要控制逻辑(软件)。 2. Linux启动流程 ARM架构: IRAM…

Wincc脚本全部不运行

Wincc脚本全部不运行 前言解决办法操作步骤 前言 这里主要是指旧项目移植到Wincc的高版本,移植后界面的一些功能均会失效。(例如脚本不执行,项目编辑器不可用等情况) 解决办法 Wincc的项目文件中有Dcf文件,Dcf文件包…

使用numpy构建逻辑回归模型及训练流程

逻辑回归模型构建及训练流程 关于逻辑回归的数据,有很多学习⽤的⽰例样本。这⾥我们使⽤scikit learn提供的数据集⽣成函数来创建 具体参数可参照官网 Scikit-learn 是⽤ Python 开发的开源机器学习库,⼴泛⽤于数据挖掘和数据分析。 特点:易…

python的多线程和多进程程序编程

CPU密集型使用多进程,IO密集型使用多线程 查看进程ID和线程ID的命令分别是os.getpid()和threading.current_thread() 多进程使用multiprocessing就可以了,通常使用进程池来完成操作,阻塞主进程使用join方法 多线程使用threading模块&#…

代码随想录算法训练营第十五天

LeetCode题目: 654. 最大二叉树617. 合并二叉树700. 二叉搜索树中的搜索98. 验证二叉搜索树2843. 统计对称整数的数目 其他: 今日总结 往期打卡 654. 最大二叉树 跳转: 654. 最大二叉树 学习: 代码随想录公开讲解 问题: 给定一个不重复的整数数组 nums 。 最大二叉树 可以用…

[GN] Uart协议解码器源码各个方法

系列文章目录 sigrokdecode 模块学习指南 — 准备阶段 通讯协议 - Uart sigrokdecode 模块 UART协议解码器源码解析 Uart协议解码器源码各个方法 文章目录 系列文章目录引入库parity_ok注解类型枚举options参数annotations 注解annotation_rows 注解分组接收(RX&a…

技术分享|iTOP-RK3588开发板Ubuntu20系统旋转屏幕方案

iTOP-3588开发板采用瑞芯微RK3588处理器,是全新一代AloT高端应用芯片,采用8nmLP制程,搭载八核64位CPU,四核Cortex-A76和四核Cortex-A55架构,主频高达2.4GHz。是一款可用于互联网设备和其它数字多媒体的高性能产品。 在…

Unity IL2CPP内存泄漏追踪方案(基于Memory Profiler)技术详解

一、IL2CPP内存管理特性与泄漏根源 1. IL2CPP内存架构特点 内存区域管理方式常见泄漏类型托管堆(Managed)GC自动回收静态引用/事件订阅未取消原生堆(Native)手动管理非托管资源未释放桥接层GCHandle/PInvoke跨语言引用未正确释放 对惹,这里有一个游戏开发交流小组…

消融实验_草稿

五列数据 \begin{table}[htbp]\caption{Performance Comparison of Standalone KD Variants vs MIRKD-enhanced Variants on ACNE04 Dataset\label{AblationKD}}\centering\renewcommand{\arraystretch}{1.2}\scriptsize\begin{tabularx}{\linewidth}{{}l *{3}{>{\centering…

面向对象高级(1)

文章目录 final认识final关键字修饰类:修饰方法:修饰变量final修饰变量的注意事项 常量 单例类什么是设计模式?单例怎么写?饿汉式单例的特点是什么?单例有啥应用场景,有啥好处?懒汉式单例类。 枚举类认识枚…

不用额外下载jar包,idea快速查看使用的组件源码

以nacos为例子,在idea中引入了nacos依赖,就可以查看源码了。 2. idea选择open(不关闭项目直接选择file-open也可以), 在maven的仓库里找到对应的包,打开 2.idea中选择 jar包,选择 add as library 3.这样j…

小白学习java第12天:IO流之缓冲流

1.IO缓冲流: 之前我们学习的都是原始流(FileInputStream字节输入流、FileOutputStream字节输出流、FIleReader字符输入流、FIleWriter字符输出流)其实我们可以知道对于这些其实性能都不是很好,要么太慢一个一个,要么就…