Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

ORA-01855:AM/A.M. ou PM/P.M. requeridos


Sua máscara de formato deve corresponder ao formato da string que você está convertendo. Então você gostaria de adicionar SS para a máscara de formato ou remova os segundos da string
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'))

Se você deseja aceitar uma string que contém segundos, mas não deseja armazenar os segundos no banco de dados (nesse caso, o Oracle sempre armazenará 0 para os segundos), você pode usar o TRUNC função
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') )