Oracle fecha corrupción durante la actualización
Estoy migrando algunos datos de un esquema / tabla de Oracle a un nuevo esquema / tabla en la misma base de datos.
El script de migración hace lo siguiente:
create table newtable as select
...
cast(ACTIVITYDATE as date) as ACTIVITY_DATE,
...
FROM oldtable where ACTIVITYDATE > sysdate - 1000;
Si miro los datos originales, se ve bien, aquí hay un registro:
select
activitydate,
to_char(activitydate, 'MON DD,YYYY'),
to_char(activitydate, 'DD-MON-YYYY HH24:MI:SS'),
dump(activitydate),
length(activitydate)
from orginaltable where oldpk = 1067514
Resultado
18-NOV-10 NOV 18,2010 18-NOV-2010 12:59:15 Typ=12 Len=7: 120,110,11,18,13,60,16
Los datos migrados, que muestran que los datos están corruptos:
select
activity_date,
to_char(activity_date, 'MON DD,YYYY'),
to_char(activity_date, 'DD-MON-YYYY HH24:MI:SS'),
dump(activity_date),
length(activity_date)
from newtable
where id = 1067514
Resultado
18-NOV-10 000 00,0000 00-000-0000 00:00:00 Typ=12 Len=7: 120,110,11,18,13,0,16
Alrededor de 5000 de 350k registros muestran este problema.
¿Alguien puede explicar cómo sucedió esto?