Estou conseguinte duvida no que está ocorrendo quando efetuo a consulta abaixo no banco de dados Oracle.
SELECT H.MAQUINA,
PR.COD,
H.TURNO
FROM HISTORICO,
(SELECT DISTINCT(P.ID) AS PID, P.CODIGO AS COD
FROM PRODUTO P, TEXTO_LOCALD TL
WHERE P.TEXTOID = TL.ID AND LINGUAGEM = 1) PR
WHERE PR.PID = H.PRODUTOID
AND H.SEQUENCIA LIKE '0001%'
AND H.CLASSE = 1
AND H.DATA_TRAB = TO_DATE('2016-08-28','YYYY-MM-DD')
AND H.TURNO IN (1,2,3)
AND PR.COD IN (6383,4407,4485,4496,4501)
GROUP BY H.MAQUINA,PR.COD,H.TURNO
/
O que ocorre, quando efetuou a consulta pela primeira vez ela executa normalmente, porém, se for executar novamente a mesma consulta ela ocorre o erro ORA-01722: número inválido.
Após analisar verifiquei que foram cadastrados códigos de produtos com letras também na tabela produto e se colocar apóstrofos nessa clausula
PR.COD IN ('6383','4407','4485','4496','4501')
Minha duvida é a seguinte, porque o Oracle executa a consulta na primeira vez e na segunda vez ela ocorre erro? Efetuei a consulta em outras datas e algumas ocorre o erro e em outras não ocorre o erro.
O banco utilizado é o Oracle 11g.