Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách đặt tham số truy vấn với dấu ngoặc kép

Tham số có tên [to] không tồn tại vì bạn đặt :to giữa các dấu nháy đơn. Sử dụng :to thay vì ':to' .

Điều đó đang được nói, điều này sẽ không hoạt động dù sao. Tôi đã đối mặt với vấn đề thực sự tương tự và sau vài giờ cuối cùng đã tìm thấy giải pháp mà tôi trình bày trong câu trả lời tại đây . Vì lý do nào đó, khi interval đi vào hoạt động việc tiêm các thông số không hoạt động như bạn mong đợi.

Xem xét kết luận từ liên kết ở trên - tôi tin rằng điều này sẽ hoạt động:

@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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để sử dụng các tham số trong mệnh đề 'where value in ...'?

  2. SQL / Regex Challenge / Puzzle:Làm thế nào để xóa nhận xét khỏi mã SQL (bằng cách sử dụng truy vấn SQL)?

  3. Chạy nhiều câu lệnh sql chỉ sử dụng thực thi trong TOAD

  4. Oracle chọn bản ghi ngày gần đây nhất

  5. Oracle / SQL - Kết hợp số lượng từ các bảng không liên quan 'không liên quan'