sql >> データベース >  >> RDS >> Oracle

一重引用符でクエリ パラメータを設定する方法

    [to] という名前のパラメータ :to を配置したため、存在しません 一重引用符の間。 :to を使用 ':to' の代わりに .

    そうは言っても、これはとにかく機能しません。私は本当に似たような問題に直面し、数時間後にようやく解決策を見つけました。 .何らかの理由で、interval の場合 パラメータのインジェクションが期待どおりに機能しません。

    上記のリンクからの結論を考慮すると、これでうまくいくと思います:

    @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. OBJECTPROPERTY()関数を使用して、オブジェクトがSQL Serverのテーブル、ビュー、またはストアドプロシージャであるかどうかを確認します

    2. PostgreSQLのダンプと異なるタイムゾーンでの復元

    3. Oracle で日付範囲内のデータを取得する

    4. TOPとサブクエリを使用せずにテーブルからn番目に高い給与を取得する方法は?