sql >> Databasteknik >  >> RDS >> Oracle

Hur man validerar ÅÅÅÅMMDD datum angivet som parameter PL/SQL

convert(varchar(10), pdate(), 111) verkar vara ett försök att använda SQL Server convert fungera. Det kommer inte att fungera i Oracle.

Jag skulle bara göra något liknande

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;

Naturligtvis, om du vill göra flera kontroller så att du kan göra ett annat undantag om längden är felaktig eller lägga till några kontroller för att säkerställa att datumet är rimligt (dvs. måste vara inom de senaste 100 åren eller inte mer än 100 år i framtiden, etc.) kan du göra det efter to_date konvertering.



  1. Skillnaden mellan primärnyckel och unik nyckel

  2. Hur HEX() fungerar i MariaDB

  3. PG::ConnectionBad (FATAL:pg_hba.conf avvisar anslutning för värd 172.17.0.1, användare XXX, databas XXX, SSL av):

  4. Robust metod för att skapa SQL-frågor programmatiskt