Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да потвърдите датата ГГГГММДД, дадена като параметър PL/SQL

convert(varchar(10), pdate(), 111) изглежда като опит за използване на SQL Server convert функция. Това няма да работи в Oracle.

Просто бих направил нещо като

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;

Разбира се, ако искате да направите няколко проверки, така че да можете да хвърлите различно изключение, ако дължината е неправилна или да добавите някои проверки, за да сте сигурни, че датата е разумна (т.е. трябва да е в рамките на последните 100 години или не повече от 100 години в бъдещето и т.н.) можете да направите това след to_date преобразуване.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Първи стъпки с Oracle SQL Developer на MacOSX

  2. Oracle йерархична клауза за стартиране на заявка от присъединяване

  3. Функция ABS() в Oracle

  4. Как да изпълним функция в Oracle с параметри

  5. Защо VS2010 прозорецът за заявка на oracle не показва резултат