sql >> Database teknologi >  >> RDS >> Oracle

Sådan valideres ÅÅÅÅMMDD-dato givet som parameter PL/SQL

convert(varchar(10), pdate(), 111) ser ud til at være et forsøg på at bruge SQL Server convert fungere. Det kommer ikke til at fungere i Oracle.

Jeg ville bare gøre sådan noget som

DECLARE
  l_dt date;
BEGIN
  l_dt := to_date( pdate, 'yyyymmdd' );
EXCEPTION
  WHEN others
  THEN
    raise_application_error( -20001, pdate || ' is not a date in the format YYYYMMDD' );
END;

Selvfølgelig, hvis du vil foretage flere kontroller, så du kan kaste en anden undtagelse, hvis længden er forkert, eller tilføje nogle kontroller for at sikre, at datoen er rimelig (dvs. skal være inden for de sidste 100 år eller ikke mere end 100 år i fremtiden osv.) kan du gøre det efter to_date konvertering.



  1. Applikationsstakkens fremtid

  2. Opret et skalerbart databaseskema til lagring af golfresultater

  3. Returner alle mulige kombinationer af værdier på kolonner i SQL

  4. Hvad er den tilsvarende syntaks for Outer Apply i PostgreSQL