• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:INSERTしたテーブルデータの参照)

テーブルデータの参照方法について

このQ&Aのポイント
  • PL/SQLの環境で、テーブルAにINSERTしたデータを元にテーブルBにデータを作成する際に、COMMITせずにテーブルAのデータを取得できるかどうかを質問します。
  • テーブルAにINSERTしたデータを取得する際、COMMITせずにテーブルBを作成することができますが、テーブルAのデータを必ず取得できるかどうかは仕様によります。
  • 一般的には、COMMITせずにテーブルAのデータを取得することはできますが、仕様や設定によっては取得できない場合もあります。ご注意ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Struggler
  • ベストアンサー率18% (97/527)
回答No.1

そのセッション内であれば、コミットしてるしてないに関わらず参照可能です。 データはそもそもUNDO領域に格納されていますので、コミット前のデータはそこを参照することで取り出すことができます。

uemitu
質問者

お礼

御礼が遅れてすみません。 ご回答ありがとうございます。 安心してプログラムを提出することができました。

その他の回答 (2)

  • Struggler
  • ベストアンサー率18% (97/527)
回答No.3

補足です。 最後の部分の説明は内部のロジックな話で、普通にテーブルを参照すればそういう風に動作します。

  • yorozu_ya
  • ベストアンサー率54% (76/140)
回答No.2

> テーブルAにデータをINSERTしてから、COMMITせずに、テーブルBのデータを > 作成するために、テーブルAのデータを取得します。その際、最初に登録した > テーブルAのデータは、テーブルBを作成する際、必ず取得できるのでしょうか。 その辺、ORACLEはよく出来てます。 他人が追加して未COMMITのものは見えませんが、 自分で追加したものはチャンと見えます。 削除も同様に 他人が削除して未COMMITのものは見えますが(更新は不可)、 自分で削除したものはチャンと消えてます。

uemitu
質問者

お礼

御礼が遅れてすみません。 ご回答ありがとうございます。 なるほど、ORACLEは、便利に作られているんですね。 勉強になりました。

関連するQ&A