Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak radzić sobie z sekundami przestępnymi w Oracle

Od MOS-

Wstawianie sekund przestępnych w kolumnie sygnatury czasowej nie powiodło się z ORA-01852 (DocID 1553906.1)

DOTYCZY:

Oracle Database — Enterprise Edition — wersja 8.1.7.4 i nowsze

Oracle Database — Standard Edition — wersja 8.1.7.4 i nowsze

Informacje zawarte w tym dokumencie dotyczą dowolnej platformy.

OBJAWY:

Próba wstawienia sekund przestępnych w kolumnie sygnatury czasowej kończy się niepowodzeniem z:ORA-01852:sekundy muszą mieścić się w zakresie od 0 do 59

PRZYCZYNA

Nie można zapisać wartości>59 sekund w dacie lub typie danych znacznika czasu

ROZWIĄZANIE

Aby obejść ten problem, rekord sekundy przestępnej może być przechowywany w typie danych avarchar2, np.

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.

Nie najlepsze rozwiązanie, ale jedyne rozwiązanie.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konwertuj ciąg znaków oddzielonych przecinkami na tablicę w PL/SQL

  2. Ograniczenie UNIQUE a sprawdzanie przed INSERT

  3. Jak sprawdzić nieaktualne statystyki

  4. Dlaczego Oracle 10g nie narzeka na niejednoznaczność kolumn?

  5. Jak edytować procedurę składowaną w Oracle SQL Developer?