2

コミット時に行を削除するオプションを使用して、作成スクリプトで定義されたグローバル一時テーブル (GTT) があります。他のユーザーのセッションのデータではなく、さまざまなユーザーが GTT で自分のデータを表示できるようにしたかったのです。これは、テスト環境で完全に機能しました。

しかしその後、クライアントのデータベースに対する機能の更新の一部として GTT をデプロイしました。クライアントは、GTT がもはやデータを保持していなかったので、動揺し、心配して私に電話をかけました。彼らはその理由を知りませんでした。

具体的には、誰かがした場合:

insert into my_GTT (description) values ('Happy happy joy joy')

データベースは次のように応答します。

1 row inserted. 

ただし、同じエンド ユーザーが試した場合:

select * from my_GTT

データベースは次のように応答します。

0 rows returned.

この問題はクライアント サイトで発生しており、社内で再現することはできません。この動作の原因は何ですか?

4

3 に答える 3

2

各ステートメントが自動コミットされるターゲット環境で、いくつかの設定がオンになっていますか?

(私の経験はSQL Serverであり、これがデフォルトですが、Oracleではデフォルトで明示的なコミットまでトランザクションを開いたままにしておくことを理解しています.注意してください、私は〜2000年以来Oracleに触れていません)

于 2010-04-23T06:46:48.280 に答える
0

私はダミアンが正しいと思います。自動コミットがあります。私が思いつくことができる他の唯一のオプションは、ある種の接続プールの問題です(つまり、別のセッションから挿入への選択が行われています)

于 2010-05-02T23:03:30.517 に答える