• 締切済み

排他処理について

VBでトランザクションをかけてあるテーブルを処理しています。 具体的にはテーブルAのレコードを一時的に別テーブル(テーブルB)に コピーしてそのレコードすべてを元のテーブルから削除して、 テーブルB内で処理をさせてから、そのデータをテーブルAに戻して コミットしています。 この処理中に、別PGもしくはSQLPlusでテーブルAからテーブルBに コピー対象の1レコードを削除してコミットしました。 これってエラーになる?ならない?それともトランザクション中だから テーブルAがコミットされて開放されるまで待ちの状態になる?? 実際どうなったかというとエラーにならなくて、その処理で最後に テーブルAにテーブルBをコピーしたときにエラーになって データがきえるという現象がおきてしまいました。 上記のような処理のときにOracle条ではどのような処理になるのでしょうか? よろしくお願いします。

みんなの回答

  • terra5
  • ベストアンサー率34% (574/1662)
回答No.3

やはり状況がよくわかりませんが、VBでテーブルを操作してどうこうというのがそもそも間違っているように思います. トランザクションはSQL側(というかデータベース側)ですべきことのように思いますが. おそらく、そういう機能があるだろうと思います.

  • terra5
  • ベストアンサー率34% (574/1662)
回答No.2

やはり状況がよくわかりませんが、VBでテーブルを操作してどうこうというのがそもそも間違っているように思います. トランザクションはSQL側(というかデータベース側)ですべきことのように思いますが. おそらく、そういう機能があるだろうと思います.

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.1

状況がうまくつかめません。 >この処理中に、別PGもしくはSQLPlusでテーブルAからテーブルBにコピー対象の1レコードを削除してコミットしました。 この文がぴんときません。そのため、全体のつながりがわかりません。

関連するQ&A