oracle 10G
想使用存储过程实现数据校验,要求校验如下些类型:   
    
  空/非空;数据类型(数字/字符)、日期格式(固定的几种,如YYYYMMDD等)、数据长度。。从A表导入到目标表B,2个表字段完成相同,用存储过程将A表数据导入到目标表B中,这里涉及的问题是A表的自己数据校验,和与B字段重复(身份证,手机号)进行数据校验。把错误信息放到日志表中

解决方案 »

  1.   

    1.空/非空:IS NULL    IS NOT NULL
    2.判断某一字段col是否全为数字:
    select 1 from dual where regexp_like (col, '\D');
    如果col中含有非数字字符,则返回1;否则返回空
      

  2.   

    3.日期格式 ,比如说为YYYYMMDD,那么任意一个不符要求的字段,执行下面的语句都会抛出异常
    select to_date('2011-10-10', 'YYYYMMDD') from dual; --有异常
    select to_date('20111010', 'YYYYMMDD') from dual;   --正常
      

  3.   

    Oracle 从10g开始支持正则表达式的。