BEGIN
SELECT Value
INTO v_Date_Format
FROM Sys.Nls_Session_Parameters
WHERE Parameter = 'NLS_DATE_FORMAT';
Dbms_Output.Put_Line('Nls_Timestamp_Format = '||v_Date_Format);
SELECT TO_DATE(In_Date,V_Date_Format)
INTO v_Date_Value
FROM Dual;
RETURN v_Date_Value;
EXCEPTION
WHEN Invalid_Date THEN
RETURN NULL;
WHEN Date_Not_Recognized THEN
RETURN NULL;
WHEN OTHERS THEN
Dbms_Output.Put_Line('SQLCODE = '||SQLCODE);
Dbms_Output.Put_Line('SQLERRM = '||SQLERRM);
RETURN NULL;
END Is_Date;
FUNCTION Is_Date(In_Date IN VARCHAR2, DATE_FORMAT IN VARCHAR2) RETURN DATE is
BEGIN
Dbms_Output.Put_Line('Timestamp_Format = '||Date_Format);
SELECT TO_DATE(In_Date,Date_Format)
INTO v_Date_Value
FROM Dual;
RETURN v_Date_Value;
EXCEPTION
WHEN Invalid_Date THEN
Dbms_Output.put_Line('Invalid Date');
RETURN NULL;
WHEN Date_Not_Recognized THEN
Dbms_Output.put_Line('Date Not Recognized');
RETURN NULL;
WHEN OTHERS THEN
Dbms_Output.Put_Line('SQLCODE = '||SQLCODE);
Dbms_Output.Put_Line('SQLERRM = '||SQLERRM);
RETURN NULL;
END Is_Date;
create function is_date(p_date in date)
return number
as
a date;
begin
a:=p_date;
return 1;
exception
when others then
return 0;
end;
/
select * from tabname where is_date(col)=1;