Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So testen Sie, ob die Datumsformatzeichenfolge eine gültige Datumsformatzeichenfolge in Oracle ist

Sie könnten eine Funktion erstellen:

zB:

FUNCTION is_valid_date_format ( 
    p_format IN VARCHAR2 ) 
RETURN BOOLEAN IS
    l_date VARCHAR2(100) := NULL;
BEGIN
    l_date := TO_char( sysdate, p_format );
    RETURN TRUE;
EXCEPTION
    WHEN OTHERS THEN
        RETURN FALSE;
END is_valid_date_format;

und verwenden Sie es so

IF is_valid_date_format('dd/mm/yyyy') THEN

Im Moment erlaubt es auch Zeitformate, es wäre jedoch einfach, es zu erweitern, um ein Format zu verbieten, das unerwünschte Formate enthält, z. B.:hh hh24 mi ss

indem Sie hinzufügen:(Sie werden wahrscheinlich zuerst Ihre Formatzeichenfolge in Großbuchstaben schreiben wollen)

IF INSTR(p_format,'HH')>0 OR INSTR(p_format,'HH24')>0 
OR INSTR(p_format,'MI')>0  OR INSTR(p_format,'SS')>0 THEN
    RETURN FALSE
END IF;