sql >> Databasteknik >  >> RDS >> Oracle

Hur man testar om datumformatsträng är en giltig datumformatsträng i Oracle

du kan skapa en funktion:

t.ex.:

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;

och använd det så här

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

för tillfället tillåter det också tidsformat, men det skulle vara enkelt att utöka det för att inte tillåta ett format som innehåller oönskade format, t.ex.:hh hh24 mi ss

genom att lägga till:(du vill antagligen ha versaler i din formatsträng först)

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;



  1. Oracle PL/SQL:ta bort blanksteg från en sträng

  2. Ladda upp dokument till Azure Data Lake och exportera data med SSIS

  3. Ett sätt att se frågan efter att parametrar har tillämpats?

  4. Varför lägger inte "insert"-funktionen till rader med MySQLdb?