2

私は次のことを行うプロジェクトを開発しています:

  1. 一時テーブル T1 を切り捨てます。
  2. 一時テーブル T1 に数千行を挿入します。
  3. いくつかの commit ステートメントを含むプロシージャを実行します。
  4. テーブル T1 から他の同一のテーブル (構造に関して) T2 に行を挿入します。
  5. commit ステートメントを含む 2 つのプロシージャをさらに実行します。

以上の 5 つのステップで、私にとって 1 つのトランザクションが形成されます。したがって、すべてを実行するか、どれも実行しないでください。

現在、何らかのエラーが発生した場合に conn.rollback を実行しても、データベースに反映される変更はほとんどありません。

プロシージャ内の commit ステートメントが原因ですか? テーブルの切り捨ては暗黙的にデータベースにコミットしますか?

もし、そうなら ?可能な解決策は何ですか?

前もって感謝します !!!

PN : データベースはオラクルにあり、PL/SQL の知識はあまりありません

4

1 に答える 1