sql >> Database >  >> RDS >> Oracle

Queryparameters instellen met enkele aanhalingstekens

Parameter met naam [to] bestaat niet omdat je :to . hebt geplaatst tussen enkele aanhalingstekens. Gebruik :to in plaats van ':to' .

Dat gezegd hebbende, dit gaat sowieso niet werken. Ik had een vergelijkbaar probleem en vond na een paar uur eindelijk een oplossing die ik in antwoord hier presenteer . Om de een of andere reden, wanneer interval komt in het spel injectie van parameters werkt niet zoals je zou verwachten.

Gezien de conclusie van de bovenstaande link - ik denk dat dit zou moeten werken:

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


  1. MAKEDATE() Voorbeelden – MySQL

  2. DEFAULT-beperking op kolom SQL wijzigen

  3. AWS RDS Postgres-verbinding mislukt

  4. Dynamische SQL Pivot (met CONVERT DateField