私は次のことを行うプロジェクトを開発しています:
- 一時テーブル T1 を切り捨てます。
- 一時テーブル T1 に数千行を挿入します。
- いくつかの commit ステートメントを含むプロシージャを実行します。
- テーブル T1 から他の同一のテーブル (構造に関して) T2 に行を挿入します。
- commit ステートメントを含む 2 つのプロシージャをさらに実行します。
以上の 5 つのステップで、私にとって 1 つのトランザクションが形成されます。したがって、すべてを実行するか、どれも実行しないでください。
現在、何らかのエラーが発生した場合に conn.rollback を実行しても、データベースに反映される変更はほとんどありません。
プロシージャ内の commit ステートメントが原因ですか? テーブルの切り捨ては暗黙的にデータベースにコミットしますか?
もし、そうなら ?可能な解決策は何ですか?
前もって感謝します !!!
PN : データベースはオラクルにあり、PL/SQL の知識はあまりありません