This PL/SQL function can be used to validate data that is in the format "dd-MON-yyyy". It only accepts exact format (FX - format exact) in "dd-MON-yyyy" only. This can be used to validate invalid date in correct format such as 31-APR-2009 etc. The actual format (day/month/year) has to be validated by using Oracle regular expression functions.  
PL/SQL Date Validation Function
CREATE OR REPLACE  FUNCTION validate_date(i_str_date IN VARCHAR2)
RETURN NUMBER AS
 v_date   DATE;
 v_flag   NUMBER := 1;
BEGIN
 SELECT TO_DATE(NVL(i_str_date,'-'),'FXdd-MON-yyyy') INTO v_date
 FROM   DUAL;
 RETURN v_flag;
EXCEPTION
 WHEN OTHERS THEN
  RETURN 0;
END  validate_date;
/
Oracle registered trademark of Oracle Corporation.

Last Revised on: March 25, 2012

  73850