1

7つの列を持つOracleテーブルがあり、2つのトリガーがあります。最初のものは一意の識別子を生成します(増分シーケンス)

2番目のトリガーは、utl_tcpを使用してリモートサーバーを突くし、20文字のデータを渡します。2番目のトリガーは「AFTERINSERT」で定義されます

これで、oracleトリガーからpingを取得したリモートサーバーが戻り、テーブルにクエリを実行して、最近追加されたものを確認します(新しいエントリと古いエントリを区別するステータスフィールドがあります)。

ここで問題となるのは、すぐにクエリを実行すると、新しいデータがないというメッセージが返されることです。ただし、10秒後にテーブルをクエリすると、新しいデータが返されます。

これは奇妙なことではありません。注文トリガー->挿入->トリガーを指定してから選択すると、データが表示されるはずです。

これは問題ではありません、他の誰かがこれを見たことがあります。

私のオラクルサーバーがどれほど速く、大きくて小さいかを知らないトランザクションの整合性を期待します。

これを達成するために設定する必要のあるフラグはありますか?

4

1 に答える 1

3

リモートサーバーは、新しく挿入された行がコミットされるまで表示されません。これは、トリガーが発生してから一定時間 (おそらく短い時間) になります。

于 2011-02-16T16:06:41.403 に答える