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

JDBCバッチ挿入例外処理

    SQLステートメントのバッチを実行していると述べているので、 executeBatchを使用していると想定しています。 。 executeBatchを実行するとき ステートメントのバッチでは、一部のステートメントが成功し、一部のステートメントが失敗する場合があります。 1つのステートメントが失敗した場合でも、JDBCドライバーが成功したステートメントをロールバックすることを意味するわけではありません。 JDBCドライバーは、1つのステートメントが失敗した場合にバッチ内のすべてのステートメントの実行を試みるか、ステートメントが失敗するとバッチ内のステートメントの実行を停止することを選択できます(使用しているドライバーがステートメントの実行を停止することを選択したようです。障害が発生するとすぐに)

    バッチ内の1つのステートメントが失敗すると、 BatchUpdateExceptionを取得する必要があります 。例外ハンドラーで、 getUpdateCountsを呼び出す必要があります 。これにより、 intの配列が得られます これは、ステートメントが更新された行数、 Statement.SUCCESS_NO_INFOのいずれかを示します。 ステートメントは成功したが行数が利用できなかったこと、または Statement.EXECUTE_FAILEDを示します ステートメントが失敗したことを示します。最初の99個のステートメントが成功し、100番目のステートメントがエラーを生成し、残りのステートメントが実行されない場合、最初の99個の要素が成功を示し、100番目の要素がStatement.EXECUTE_FAILED 。次に、コードは実行されなかったステートメント(この場合はステートメント101-1000)を再試行する必要があります。



    1. SQL Serverデータベースの回復保留状態を修正するにはどうすればよいですか?

    2. ClusterControl-高度なバックアップ管理-PostgreSQL

    3. SQLServerイベントをキャプチャするためのSQLトレースを作成する方法

    4. MySQLシェルを使用した論理データベースのバックアップ