En Oracle DATE lagrar inte tider med mer precision än en sekund. Du kan inte lagra millisekunders precisionsdata i en DATE kolumn.
Dina två alternativ är att antingen trunkera strängen av millisekunderna innan du konverterar den till en DATE , dvs.
to_date( substr('23.12.2011 13:01:001', 1, 19), 'DD.MM.YYYY HH24:MI:SS' )
eller för att konvertera strängen till en TIMESTAMP som stöder millisekundsprecision
to_timestamp( '23.12.2011 13:01:001', 'DD.MM.YYYY HH24:MI:SSFF3' )