sql >> Database >  >> RDS >> Oracle

Hoe om te gaan met schrikkelseconden in Oracle

Van MOS-

Het invoegen van schrikkelseconden in een tijdstempelkolom mislukt met ORA-01852 (DocID 1553906.1)

GELD VAN TOEPASSING OP:

Oracle Database - Enterprise Edition - Versie 8.1.7.4 en hoger

Oracle Database - Standard Edition - versie 8.1.7.4 en hoger

De informatie in dit document is van toepassing op elk platform.

SYMPTOMEN:

Een poging om schrikkelseconden in een tijdstempelkolom in te voegen, mislukt met:ORA-01852:seconden moeten tussen 0 en 59 liggen

OORZAAK

Het is niet mogelijk om>59 sec waarde op te slaan in een datum- of tijdstempeldatatype

OPLOSSING

Om dit probleem te omzeilen, kan het schrikkelseconde-record in plaats daarvan worden opgeslagen in het avarchar2-gegevenstype, bijvoorbeeld

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.

Niet de beste oplossing, maar de enige oplossing.




  1. De ORDER BY-component is ongeldig in views, inline-functies, afgeleide tabellen, subquery's en algemene tabelexpressies

  2. Kan vooraf gemaakte db niet kopiëren van activa

  3. SQL Server BULK INSERT van Linux

  4. psql ongeldige opdracht \N while restore sql