Oracle
 sql >> Database >  >> RDS >> Oracle

Come gestire i secondi intercalari in Oracle

Da MOS-

Inserire i secondi intercalari in una colonna timestamp non riesce con ORA-01852 (DocID 1553906.1)

SI APPLICA A:

Oracle Database - Enterprise Edition - Versione 8.1.7.4 e successive

Oracle Database - Standard Edition - Versione 8.1.7.4 e successive

Le informazioni in questo documento si applicano a qualsiasi piattaforma.

SINTOMI:

Un tentativo di inserire i secondi intercalari in una colonna timestamp non riesce con:ORA-01852:i secondi devono essere compresi tra 0 e 59

CAUSA

Non è possibile memorizzare un valore>59 sec in un tipo di dati data o timestamp

SOLUZIONE

Per ovviare a questo problema, il record del secondo intercalare può essere archiviato invece nel tipo di dati avarchar2, ad es.

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.

Non la soluzione migliore, ma l'unica soluzione.