sql >> Database >  >> RDS >> Oracle

ORA-01858 zien:er is een niet-numeriek teken gevonden waar een numeriek werd verwacht

In principe probeer je een string op te slaan die een datum vertegenwoordigt in een tijdstempelveld. Als je vervangt:

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

door

TRUNC(TS, 'hh24')

op alle 4 plaatsen zou het moeten werken.

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



  1. mysql triggers verwijderen

  2. T-SQL-bugs, valkuilen en best practices - draaiend en ondraaiend

  3. Oracle-object selecteren met verzameling van objecten zonder bulkverzameling

  4. subquery-fout en te veel waarden met xmllagg