2009-08-06 23 views
0

テーブルがOracleデータベースに存在するため、そのテーブルを1レコードで更新しています。実行中で、そのテーブルからselect *と入力すると、そのレコードが表示されます。行がテーブルに挿入されていません

しかし、問題は私が変更をコミットするときです。テーブルに何も表示されていません - 私はテーブルの中にanythngを見ていない、それは0レコードを表示しています。

私を助けてもらえますか?この後

insert into recon values(1,'sri',-1,'20090806'); 

私はそれがそのレコードを示したが、それは何も示さないのcommit後だ

select * from recon; 

を書く場合。そのテーブルのトリガーはありません。

これは表示されません。

+1

テーブルにトリガがあるかどうかを確認してください。また、SQLコマンドのログを投稿して問題の分析に役立ててください。 – dpbradley

+1

実行しているSQL文を投稿してください。 – Quassnoi

+0

再設定値(1、 'sri'、 - 1、 '20090806')に挿入します。 この後に書く場合 select * from recon; そのレコードを示しています しかし、コミット後に何も表示されません。 そのテーブル – musicking123

答えて

3

コミット後にグローバルテンポラリテーブルが空になります。

2つの種類の一時テーブルがあります.1つはコミット後に空になり、2はセッションが空になった後に終了します。

+0

確かに可能性があります。確認するには、 'SELECT FROM user_tables WHERE table_name = 'recon''を選択します。これが 'Y'の場合は、グローバル一時表です。私はそれがコミット時に削除するかどうかを確認する方法はわかりませんが、あなたが見ている動作を確実に説明するでしょう。 –

+1

where table_name = 'recon' - > where table_name = 'RECON' – Theo

+1

@ musicking123 - これは一時テーブルだったことが判明しましたか? – dpbradley

0

私の推測では、トランザクションが正常にコミットされなかったということでしょうが、最初に私はそれが(私はSQLServerので働く)ため、ネストされたトランザクションであったが、あなたがしている場合は理由ではない、適切にコミットされたトランザクション

+0

それをコミットしていますか? – musicking123

0

で基本的になることができると考えましたadmin他のユーザーがデータベースにログインしていて、そのテーブルを使用していることを確認し、そのテーブル/データベースからユーザーをロック解除します。

+0

他のユーザーが同じデータベース/テーブルにアクセスしているかどうかをチェックする方法は? – musicking123

+0

このリンクをご覧くださいhttp://www.shutdownabort.com/dbaqueries/Performance_Locks_DML.php#Show-locked-objects – 81967

関連する問題