Oracle
 sql >> Base de données >  >> RDS >> Oracle

ORA-01855 :AM/AM. ou PM/P.M. obligatoire

Votre masque de format doit correspondre au format de la chaîne que vous convertissez. Donc, vous voudriez soit ajouter SS au masque de format ou supprimer les secondes de la chaîne

INSERT INTO TBL(ID,START_DATE) 
  values (123, TO_DATE ('3/13/2012 9:22:00 AM', 'MM/DD/YYYY HH:MI:SS AM'))

ou

INSERT INTO TBL(ID,START_DATE) 
  values (123, TO_DATE ('3/13/2012 9:22 AM', 'MM/DD/YYYY HH:MI:SS AM'))

Si vous voulez accepter une chaîne qui contient des secondes mais que vous ne voulez pas stocker les secondes dans la base de données (auquel cas Oracle stockera toujours 0 pour les secondes), vous pouvez utiliser le TRUNC fonction

INSERT INTO TBL(ID,START_DATE) 
  values (123, TRUNC( TO_DATE ('3/13/2012 9:22:00 AM', 'MM/DD/YYYY HH:MI:SS AM'), 'MI') )