sql >> Base de Datos >  >> RDS >> Oracle

Cómo manejar los segundos bisiestos en Oracle

Desde MOS-

La inserción de segundos bisiestos en una columna de marca de tiempo falla con ORA-01852 (DocID 1553906.1)

APLICA A:

Oracle Database - Enterprise Edition - Versión 8.1.7.4 y posteriores

Oracle Database - Standard Edition - Versión 8.1.7.4 y posteriores

La información de este documento se aplica a cualquier plataforma.

SÍNTOMAS:

Un intento de insertar segundos bisiestos en una columna de marca de tiempo falla con:ORA-01852:los segundos deben estar entre 0 y 59

CAUSA

No es posible almacenar un valor de>59 segundos en un tipo de datos de fecha o marca de tiempo

SOLUCIÓN

Para solucionar este problema, el registro del segundo intercalar se puede almacenar en el tipo de datos avarchar2, por ejemplo,

SQL> create table test (val number, t varchar2(30));

Table created.

SQL> insert into test values(123, '2012-06-30T23:59:60.000000Z');

1 row created.

No es la mejor solución, pero la única solución.