Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Siehe ORA-01858:Es wurde ein nicht numerisches Zeichen gefunden, wo eine Ziffer erwartet wurde

Grundsätzlich versuchen Sie, eine Zeichenfolge zu speichern, die ein Datum in einem Zeitstempelfeld darstellt. Wenn Sie ersetzen:

TO_CHAR(TS, 'DD-MON-YYYY HH AM')

von

TRUNC(TS, 'hh24')

An allen 4 Stellen sollte es funktionieren.

INSERT INTO ENROLLMENTS (DATE,PARTNER_NAME,ENROLLMENTS)
    SELECT   TRUNC(TS, 'hh24') AS DATE, mrch_bnft_cd, COUNT(*)
    FROM     ENROLLMENTS 
    WHERE    TS > trunc(sysdate-1/24, 'HH') + 5/24 
    AND      TS < trunc(sysdate, 'HH') + 5/24
    GROUP BY TRUNC(TS, 'hh24'), mrch
    ORDER BY TRUNC(TS, 'hh24'), mrch_bnft