sql >> Base de Datos >  >> RDS >> Oracle

Al ver ORA-01858:se encontró un carácter no numérico donde se esperaba un carácter numérico

Básicamente, está intentando almacenar una cadena que representa una fecha en un campo de marca de tiempo. Si reemplaza:

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

por

TRUNC(TS, 'hh24')

en los 4 lugares debería funcionar.

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