Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да се справяме с високосните секунди в Oracle

От MOS-

Вмъкването на секунди за прескок в колона с времеви клей не е успешно с ORA-01852 (DocID 1553906.1)

ОТНОСНО ЗА:

Oracle Database – Enterprise Edition – Версия 8.1.7.4 и по-нова

Oracle Database – Стандартно издание – Версия 8.1.7.4 и по-нова

Информацията в този документ се отнася за всяка платформа.

СИМПТОМИ:

Опитът за вмъкване на секунди за прескок в колона с времеви клеймо е неуспешен с:ORA-01852:секундите трябва да са между 0 и 59

Причина

Не е възможно да се съхрани стойност>59 секунди в тип данни за дата или време

РЕШЕНИЕ

За да се заобиколи този проблем, записът за високосната секунда може да се съхранява в тип данни avarchar2, напр.

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.

Не е най-доброто решение, но единственото решение.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да разделя низ в PL/SQL?

  2. Агрегатна конкатенация на низове в Oracle 10g

  3. Как мога да разположа .NET приложение, което използва ODAC, без да инсталирам целия компонент на потребителя?

  4. Как да използвам константа на пакета в SQL оператор SELECT?

  5. хванете изключение на DB в JSF+EJB приложение