local function inside PL/SQL script
If that's your entire script, you're missing the DECLARE
keyword at the start of your anonymous block:
DECLARE FUNCTION is_valid_date (p_val in VARCHAR2, p_format IN VARCHAR2 ) RETURN numeric IS l_date VARCHAR2(100); BEGIN l_date := TO_date( p_val, p_format ); RETURN 1; EXCEPTION WHEN OTHERS THEN RETURN 0; END is_valid_date;BEGIN DBMS_OUTPUT.PUT_LINE(is_valid_date('20120101', 'YYYYMMDD' )); END;/anonymous block completed1
Without that you'll get a series of errors starting with
Error starting at line : 1 in command -FUNCTION is_valid_date (p_val in VARCHAR2, p_format IN VARCHAR2 )Error report -Unknown Command
... which I imagine is the 'generic error' you referred to.