首页 > 其他分享 >存储函数把身份证15位转18位

存储函数把身份证15位转18位

时间:2022-10-28 15:01:32浏览次数:34  
标签:End 位转 Return RESULTS SUBSTR Varchar2 18 15 CARD

Create Or Replace Function IDCARD15TO18(CARD Varchar2) Return Varchar2 Is
  Type TIARRAY Is Table Of Integer;
  Type TCARRAY Is Table Of Char(1);
  RESULTS Varchar2(18);
  W       TIARRAY; -- 数字数组
  A       TCARRAY; -- 字符数组
  S       Integer;
Begin
  If CARD Is Null Then
    Return '';
  End If;
  If LENGTH(CARD) <> 15 Then
    Return CARD;
  End If;
  W       := TIARRAY(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
  A       := TCARRAY('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
  RESULTS := SUBSTR(CARD, 1, 6) || '19' || SUBSTR(CARD, 7, 9);
  S       := 0;
  Begin
    For I In 1 .. 17 Loop
      S := S + To_Number(SUBSTR(RESULTS, I, 1)) * W(I);
    End Loop;
  Exception
    When Others Then
      Return '';
  End;
  S       := S Mod 11;
  RESULTS := RESULTS || A(S + 1);
  Return(RESULTS);
End IDCARD15TO18;

 

标签:End,位转,Return,RESULTS,SUBSTR,Varchar2,18,15,CARD
From: https://www.cnblogs.com/erguai/p/16836087.html

相关文章

  • vs2015中搭建EF框架在代码生成策略中找不到“旧的ObjectContext
    vs2015中搭建EF框架在代码生成策略中找不到“旧的ObjectContext”生生不息0.o于2022-01-0617:28:10发布429收藏分类专栏:C#EF文章标签:c#软件框架版权C#同时被......
  • CF183D T-shirt
    本题的第一个转化很关键,也是这种期望题必须要观察到的一个性质,就是每种衣服的的贡献可以单独算。因为一个人喜欢一种衣服就不会喜欢另一种衣服,也就是说喜欢每一件衣服的概......
  • 好长时间没更新文档了:18年至今从初级,到中级,再到高级感慨颇多
    1、认知上的成长:原以为功能测试就是功能测试(常说的点点点),甚至处于鄙视链底端。现在再回顾自己当初的观点,这样的眼光看待功能测试,是我的一种偏见,是自己一种浅层次的认知。......
  • uva 11552
    给你一个长度 k ,一个字符串 S(都为小写字母),保证 S 的长度为 k的整数倍。将 S 按顺序分为 S/k 组,组内字符可以重新排列问最少有几个块?(如fff,ww) 枚举开头......
  • Ubuntu 18.04.6 LTS中创建python运行的虚拟环境
    目录​​1,首先确定自己的系统版本​​​​2,检查python版本​​​​3,创建虚拟环境​​1,首先确定自己的系统版本cat/etc/issue不同的版本不保证下面操作的有效性 2,检查pytho......
  • ubuntu18.04 搭建kafka消息队列的运行开发环境 转载文章
    1、搭建zookeeper运行环境转载文章https://blog.csdn.net/lihao21/article/details/51778255本文讲述如何安装和部署ZooKeeper。一、系统要求ZooKeeper可以运行在多种系......
  • 金蝶K3 V15 Win10x64 导出xlsx提示“未设置对象变量或 With block 变量”解决
     安装了Office2019x64Pro版,金蝶K3导出物料时选择xls2003版无错误提示,但选择高版本Officexlsx时则出现提示报错。原因时没有安装对应的数据库引擎:AccessDatabaseE......
  • # 10. 打印内存地址——18. 字符与字符串
    10.打印内存地址先定义变量类型,再赋值,选择函数方法输出packagemainimport"fmt"funcmain(){ varnumint num=100 fmt.Printf("num:%d,内存地址:num:%p",num......
  • uva 11584
    给一个字符串,划分成最少的回文串如aaadbccb---->aadbccb f[i]=miin{f[j]+1}j<i, 且s[j...i]是回文串 #include<iostream>#include<cstring>using......
  • P4718 【模板】Pollard-Rho算法
    题目链接P4718【模板】Pollard-Rho算法题目描述MillerRabin算法是一种高效的质数判断方法。虽然是一种不确定的质数判断法,但是在选择多种底数的情况下,正确率是可以接......