Um Oracle
DATE
não armazena tempos com mais precisão que um segundo. Você não pode armazenar dados de precisão de milissegundos em um DATE
coluna. Suas duas opções são truncar a string dos milissegundos antes de convertê-la em um
DATE
, ou seja to_date( substr('23.12.2011 13:01:001', 1, 19), 'DD.MM.YYYY HH24:MI:SS' )
ou para converter a string em um
TIMESTAMP
que suporta precisão de milissegundos to_timestamp( '23.12.2011 13:01:001', 'DD.MM.YYYY HH24:MI:SSFF3' )