Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment définir des paramètres de requête avec des guillemets simples

Paramètre avec le nom [to] n'existe pas car vous avez mis :to entre guillemets simples. Utilisez :to au lieu de ':to' .

Cela étant dit, cela ne fonctionnera pas de toute façon. J'ai fait face à un problème vraiment similaire et après quelques heures, j'ai finalement trouvé une solution que je présente en réponse ici . Pour une raison quelconque, lorsque interval entre en jeu l'injection de paramètres ne fonctionne pas comme prévu.

Considérant la conclusion du lien ci-dessus - je pense que cela devrait fonctionner :

@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);