sql >> Databasteknik >  >> RDS >> Oracle

Hur man hanterar skottsekunder i Oracle

Från MOS-

Infoga skottsekunder i en tidsstämpelkolumn misslyckas med ORA-01852 (DocID 1553906.1)

GÄLLER FÖR:

Oracle Database - Enterprise Edition - Version 8.1.7.4 och senare

Oracle Database - Standard Edition - Version 8.1.7.4 och senare

Informationen i detta dokument gäller för alla plattformar.

SYMPTOM:

Ett försök att infoga skottsekunder i en tidsstämpelkolumn, misslyckas med:ORA-01852:sekunder måste vara mellan 0 och 59

ORSAK

Det är inte möjligt att lagra>59 sek värde i en datum- eller tidsstämpeldatatyp

LÖSNING

För att komma runt problemet kan skottsekundposten lagras i avarchar2-datatypen istället, t.ex.

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.

Inte den bästa lösningen, men den enda lösningen.




  1. PL/SQL ORA-01422:exakt hämtning returnerar fler än begärt antal rader

  2. Kontrollera om en icke-LOB-kolumn behöver uppdateras

  3. MariaDB JSON_SET() Förklarad

  4. ORA-24247:nätverksåtkomst nekad av åtkomstkontrolllista (ACL)