Not really. You must make up your own functions. If you send your variable out to your custom IsNumber function and it converts to a number, fine and return True. If it fails, then you know it is not a number and return false. Easy. But, Date is another matter. You must either force your user to enter one type of date format, or you must check all possible formats. I did something like that, had a Package that defined an array with possible date formats, then had a function that checked this array. So, the check date function could look like:
FUNCTION IsDate_Fun (InDateString IN VARCHAR2)
RETURN BOOLEAN IS
TempDate DATE;
Mask_Index PLS_INTEGER := 0;
BEGIN
Mask_Index := DateFmts.FIRST;
LOOP
EXIT WHEN Mask_Index IS NULL;
BEGIN
ReturnDate := TO_DATE
(InDateString, DateFmts(Mask_Index));
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
Mask_Index := DateFmts.NEXT (Mask_Index);
END;
END LOOP;
RETURN FALSE;
END IsDate_Fun;
/
In the Package your array could look like:
DateFmts(1) := 'DD-MON-RR';
DateFmts(2) := 'DD-MON-YYYY';
DateFmts(3) := 'DD-MON';
DateFmts(4) := 'MM/DD';
DateFmts(5) := 'MM/RR';
DateFmts(6) := 'MM/YYYY';
DateFmts(7) := 'MM/DD/RR';
DateFmts(8) := 'MM/DD/YYYY';
DateFmts(9) := 'MMDDYYYY';
DateFmts(10) := 'YYYYMMDD';
DateFmts(11) := 'RRMMDD';
DateFmts(12) := 'MMDDRR';
DateFmts(13) := 'FMMonth DD, YYYY';
DateFmts(14) := 'FMMonth ddSp, YyyySp';
DateFmts(15) := 'FMMonth ddSp, YyyySp A.D.';