Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como definir parâmetros de consulta com aspas simples


Parâmetro com nome [to] não existe porque você colocou :to entre aspas simples. Use :to em vez de ':to' .

Dito isto, isso não funcionará de qualquer maneira. Eu enfrentei um problema realmente semelhante e, depois de algumas horas, finalmente encontrei uma solução que apresento na resposta aqui . Por algum motivo, quando interval entra em jogo a injeção de parâmetros não funciona como seria de esperar.

Considerando a conclusão do link acima - acredito que isso deve funcionar:
@Transactional(propagation = Propagation.REQUIRES_NEW)
@Modifying
@Query(value = "UPDATE transactionlog SET transactionstatus= :ps,
       startedat = CURRENT_TIMESTAMP, 
       readytoprocessat= (CURRENT_TIMESTAMP + (( :to ) || 'second')\\:\\:interval)
       WHERE logid IN (:li) ",nativeQuery = true)
public Integer reserve(@Param("ps") short processingStatus, @Param("li") List<Integer> logIdList, @Param("to") int timeOut);