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

java.sql.SQLException:ORA-01002:フェッチが順不同です

    SELCT ... FOR UPDATE 選択した行でロックを解除する必要があるため、マネージドトランザクションのコンテキストでのみ意味があります。

    デフォルトでは、JDBCはマネージドトランザクションを使用せず、クエリが実行されるとすぐにコミットする暗黙的に作成されたトランザクションを使用します。これにより、SELECT ... FOR UPDATEのセマンティクスが壊れます。 、およびJDBCドライバーが文句を言います。

    マネージドトランザクションを使用するには、

    を追加します
    connection.setAutoCommit(false); 
    

    クエリを実行する前に。その後、connection.commit()を実行します 。



    1. sqlalchemyテーブルが空かどうかを確認します

    2. EntityFrameworkを使用してストアドプロシージャからデータを取得する

    3. 日付範囲の日付を確認する方法は、mysqlクエリの2つの日付の間にあります

    4. PostgreSQLでEXCLUDEを使用して隣接/重複するエントリを防止する