文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>oracle 函数身份证15位转18位 (校验函数)

oracle 函数身份证15位转18位 (校验函数)

时间:2010-06-17  来源:nsq029

oracle 函数15位身份证号转18位身份证号,同时可以参考此代码编写身份证校验函数

/*15位身份证转18位*/
FUNCTION GET_NEWCERT(
    OLDCERT IN VARCHAR2)
  RETURN VARCHAR2
IS
  NEW_CERT VARCHAR2(20);
  OLD_CERT VARCHAR2(17);
  I NUMBER;
  SUMID NUMBER;
  CHECKID VARCHAR2(34);
  ENDID VARCHAR2(11);
BEGIN
  ENDID :='10X98765432';
  CHECKID :='0709100508040201060307091005080402';
  SUMID :=0;
  OLD_CERT :=SUBSTR(OLDCERT,1,6)||'19'||SUBSTR(OLDCERT,7,9);
  IF LENGTH(OLDCERT)=15 AND FHTS_DATE.IS_DATE(SUBSTR(OLD_CERT,7,8))=0 THEN
    FOR I IN 1..17
    LOOP
      SUMID:=SUMID+TO_NUMBER(SUBSTR(OLD_CERT,I,1))*TO_NUMBER(SUBSTR(CHECKID,I*2-1,2));
    END LOOP;
    NEW_CERT:= OLD_CERT||SUBSTR(ENDID,MOD(SUMID,11)+1,1);
  ELSE
    NEW_CERT:=OLDCERT;
  END IF;
  RETURN NEW_CERT;
END GET_NEWCERT;


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载