易截截图软件、单文件、免安装、纯绿色、仅160KB

ORACLE对身份证号码处理相关的SQL汇总

         目前我国大量存在着正在有效期的15位身份证,虽然国家在推行二代身份证,但尚未发现强行要求全国人民更换未到期的15位身份证的官方声明或公告。
          扯远了:),总之合法的15位身份证号码将在今后一段时间内继续存在下去。
         另外,项目中往往有着大量的历史数据,我们的一个系统中15位身份证所占比重很大,因此系统必须实现对两套身份证编码的职能处理,并支持另外一种特殊证件类型:军官证/警官证。本文重点讨论15位/18位身份证的处理问题
         众所周知,我们现执行的身份证号码编码由公安部具体落实编码规则,有15位/18位两种,公安部以数学语言描述的方式公开了身份证编码规则和位码含义,但具体到计算机语言实现,需要开发人员自行根据算法设计。网上流传版本不少,不过繁杂而凌乱,且与应用集合描述的不多。现结合项目实践谈谈其处理和用途。
         本文主要以oracle的SQL为例子,其他语言大家可以自行转换,道理都是一样的。
这里以ORACLE为例,其他数据库非常类似:
1 号码转换问题       
create or replace ID15TO18(p_OldID varchar2) return varchar2 is
   type TIArray is table of integer;
   type TCArray is table of char(1);
   Result varchar2(18);
   W TIArray;
   A TCArray;
   S integer;
begin
   if Length(p_OldID) <> 15 OR  NOT ISIDCARD(p_OldID) then
--raise_application_error(-20999, '不是旧15位身份证号或者不是身份证号');
   Result := p_OldID;
   else
   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');
   Result := SubStr(p_OldID, 1, 6) || '19' || SubStr(p_OldID, 7, 9);
   S := 0;
   begin
      for i in 1 .. 17 loop
      S := S + to_


相关文档:

Oracle用户管理

 一,Oracle数据库用户简介
 在Oracle数据库中任何对象都属于一个特定用户,或者说一个用户与同名的模式相关联。
 要连接到Oracle数据库需要一个用户帐户,根据需要授予的操作权限。
 1,默认数据库用户模式:
  Sys:数据库字典(存储被管理对象所有信息)和视图存储在该模式中。系统级用户。 ......

Oracle 三种集合数据类型的比较

 Oracle 三种集合数据类型的比较:
PL/SQL中没有数组的概念,他的集合数据类型和数组是相似的。在7.3以前的版本中只有一种集合,称为PL/SQL表,在这之后又有两种集合数据类型:嵌套表和varray。其中varray集合中的元素是有数量限制的,index_by表和嵌套表是没有这个限制的。index-by表是稀疏的,也就是说下标可以不连续 ......

oracle forall语句

 FORALL语句的一个关键性改进,它可大大简化代码,并且对于那些要在PL/SQL程序中更新很多行数据的程序来说,它可显著提高其性能。
1:
用FORALL来增强DML的处理能力
Oracle为Oracle8i中的PL/SQL引入了两个新的数据操纵语言(DML)语句:BULK COLLECT和FORALL。这两个语句在PL/SQL内部进行一种数组处理
;BULK COLLE ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号