Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como lidar com segundos bissextos no Oracle


De MOS-

A inserção de segundos bissextos em uma coluna de carimbo de data/hora falha com ORA-01852 (DocID 1553906.1)

APLICA-SE A:

Oracle Database - Enterprise Edition - Versão 8.1.7.4 e posterior

Oracle Database - Standard Edition - Versão 8.1.7.4 e posterior

As informações neste documento se aplicam a qualquer plataforma.

SINTOMAS:

Uma tentativa de inserir segundos bissextos em uma coluna de carimbo de data/hora falha com:ORA-01852:os segundos devem estar entre 0 e 59

CAUSA

Não é possível armazenar um valor>59 segundos em um tipo de dados de data ou timestamp

SOLUÇÃO

Para contornar esse problema, o registro do segundo bissexto pode ser armazenado no tipo de dados avarchar2, por exemplo,

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.

Não é a melhor solução, mas a única solução.