Ein Oracle DATE speichert Zeiten nicht mit einer Genauigkeit von mehr als einer Sekunde. Sie können keine Daten mit Millisekundengenauigkeit in einem DATE speichern Spalte.
Sie haben zwei Möglichkeiten, entweder die Zeichenfolge der Millisekunden abzuschneiden, bevor Sie sie in ein DATE umwandeln , also
to_date( substr('23.12.2011 13:01:001', 1, 19), 'DD.MM.YYYY HH24:MI:SS' )
oder um den String in einen TIMESTAMP umzuwandeln das unterstützt Millisekunden-Präzision
to_timestamp( '23.12.2011 13:01:001', 'DD.MM.YYYY HH24:MI:SSFF3' )