ORA-01861: literalmente não corresponde à cadeia de formato

Quando eu tento executar este corte:

cmd.CommandText = "SELECT alarm_id,definition_description,element_id,
    TO_CHAR (alarm_datetime, 'YYYY-MM-DD HH24:MI:SS'),severity,
    problem_text,status FROM aircom.alarms 
    WHERE status = 1 and 
    TO_DATE (alarm_datetime,'DD.MM.YYYY HH24:MI:SS') > TO_DATE ('07.09.2008 
    09:43:00', 'DD.MM.YYYY HH24:MI:SS') 
    order 
    by ALARM_DATETIME desc";

Eu entendo:

ORA-01861: literal does not match format string

Não há problema com a conexão com banco de dados porque eu posso executar comandos SQL básicos.

Qual é o problema com esta afirmação?

Remover a cláusula TO_DATE na cláusula WHERE

TO_DATE (alarm_datetime,'DD.MM.YYYY HH24:MI:SS')

e altere o código para

alarm_datetime

O erro vem da conversão de uma coluna de data até_data.

Explicação adicional: Oracle converte a hora do seu alarme em uma string usando seu formato de data dependente de nls. Depois disso, ele chama para_data com a máscara de data fornecida. Isto lança a exceção.

Comentários (0)

O erro significa que você tentou entrar um literal com uma cadeia de formato, mas o comprimento da cadeia de formato não era o mesmo comprimento que o literal.

Um destes formatos está incorrecto:

TO_CHAR(t.alarm_datetime, 'YYYY-MM-DD HH24:MI:SS')
TO_DATE(alarm_datetime, 'DD.MM.YYYY HH24:MI:SS')
Comentários (1)
SELECT alarm_id
,definition_description
,element_id
,TO_CHAR (alarm_datetime, 'YYYY-MM-DD HH24:MI:SS')
,severity
, problem_text
,status 
FROM aircom.alarms 
WHERE status = 1 
    AND TO_char (alarm_datetime,'DD.MM.YYYY HH24:MI:SS') > TO_DATE ('07.09.2008  09:43:00', 'DD.MM.YYYY HH24:MI:SS') 
ORDER BY ALARM_DATETIME DESC 
Comentários (0)