有没有想 isdate()的函数.

解决方案 »

  1.   

    SQL*Plus:   Release   8.0.5.0.0   -   Production   on   星期二   12月   21   14:20:58   2004   
        
      (c)   Copyright   1998   Oracle   Corporation.     All   rights   reserved.   
        
        
      连接到:   
      Oracle8   Release   8.0.5.0.0   -   Production   
      PL/SQL   Release   8.0.5.0.0   -   Production   
        
      SQL>   create   or   replace   function   isdate(mydate   in   varchar2)   
          2     return   char   is   
          3     tmp   date;   
          4     begin   
          5     tmp:=to_date(mydate,'yyyymmdd');   
          6     return   '1';   
          7     exception   
          8             when   others   then   
          9                     return   '0';   
        10     end   isdate;   
        11     /   
        
      函数已创建。   
        
      SQL>   select   isdate(substr('320102199901012015',7,8))   from   dual;   
        
      ISDATE(SUBSTR('320102199901012015',7,8))   
      ----------------------------------------------------------------------------------------------------   
      1   
        
      SQL>   select   isdate(substr('320102199901322015',7,8))   from   dual;   
        
      ISDATE(SUBSTR('320102199901322015',7,8))   
      ----------------------------------------------------------------------------------------------------   
      0   
        
      SQL>
      

  2.   

    写个函数吧
    CREATE OR REPLACE FUNCTION IS_DATE(str  VARCHAR2) 
                      RETURN NUMBER
    IS
      tmpDT    DATE;
    BEGIN
      tmpDT := TO_DATE(NVL(str, 'kk'), 'YYYY-MM-DD HH24:MI:SS');
      RETURN 1;  EXCEPTION
         WHEN OTHERS THEN
             RETURN 0;
    END;
    /SELECT IS_DATE('2007-04-05') FROM DUAL;
    SELECT IS_DATE('55555') FROM DUAL;