CREATE OR REPLACE FUNCTION ISYYYYMMDD (p_date IN VARCHAR2,p_gubun IN VARCHAR2) RETURN NUMBER   
--p_date : 입력받는 문자열, p_gubun : 날짜구분형식(-이면 2011-03-28)
AS   
l_tst date;  
BEGIN  
   l_tst := to_date(p_date,'YYYY'||p_gubun||'MM'||p_gubun||'DD');  
   if REGEXP_REPLACE(p_date,'[0-9][0-9][0-9][0-9]'||p_gubun||'[0-9][0-9]'||p_gubun||'[0-9][0-9]','Y')='Y' then  
       RETURN 1;  
   else  
       RETURN 0;  
   end if;  
EXCEPTION  
   WHEN OTHERS THEN  
      RETURN 0;  
END;
/

AND