2009-08-06 6 views
0

Die Tabelle ist in Oracle-Datenbank vorhanden, ich aktualisiere diese Tabelle mit einem Datensatz. Es wird ausgeführt, und wenn ich select * aus dieser Tabelle tippe, zeigt es diesen Datensatz an.Zeile wird nicht in Tabelle eingefügt

Aber das Problem ist, wenn ich die Änderungen begehen. Der Tisch zeigt nichts - ich sehe keinen Tisch in der Tabelle, er zeigt 0 Einträge.

Können Sie mir bitte helfen?

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

danach, wenn ich schreibe

select * from recon; 

es, dass Rekord zeigt aber nach begehen es ist nichts zeigt. Es gibt keinen Trigger für diese Tabelle.

es ist keine Ansicht.

+1

Überprüfen Sie, ob ein Trigger auf dem Tisch vorhanden ist. Stellen Sie auch ein Protokoll Ihrer SQL-Befehle bereit, um das Problem zu analysieren. – dpbradley

+1

Bitte veröffentlichen Sie die SQL-Anweisungen, die Sie ausführen. – Quassnoi

+0

Einfügen in Recon-Werte (1, 'sri', - 1, '20090806'); danach, wenn ich schreibe wählen Sie * aus Recon; sein zeigt, dass Datensatz aber nach seinem Engagement nichts zeigt. Es gibt keinen Trigger für diese Tabelle – musicking123

Antwort

3

Es ist eine globale temporäre Tabelle, nach dem Commit ist es geleert.

Es gibt zwei Arten von temporären Tabellen, 1 nach dem Commit geleert, 2. nach dem Ende der Session geleert.

+0

Definitiv eine Möglichkeit. Um dies zu überprüfen, wählen Sie temporär SELECT aus user_tables WHERE table_name = 'recon'. Wenn dies 'Y' ist, dann ist es eine globale temporäre Tabelle. Ich bin mir nicht sicher, wie überprüft werden kann, ob das Löschen beim Commit eingestellt ist, aber es würde sicherlich das Verhalten erklären, das Sie sehen. –

+1

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

+1

@ musicking123 - hat sich herausgestellt, dass es sich um eine temporäre Tabelle handelt? – dpbradley

0

Meine Vermutung wäre, dass die Transaktion nicht richtig begangen wurde, zunächst dachte ich, dass es wegen der verschachtelten Transaktionen war (ich in SQLServer arbeiten), konnte aber im Grunde sein, weil nicht richtig festgeschriebene Transaktion

+0

am commiting es nach dem Einfügen. – musicking123

0

Wenn Sie das sind admin, Überprüfen Sie, ob andere Benutzer in der Datenbank angemeldet sind und diese Tabelle verwenden. Entsperren Sie den Benutzer aus dieser Tabelle/Datenbank.

+0

Wie überprüft man, ob andere Benutzer auf dieselbe Datenbank/Tabelle zugreifen? – musicking123

+0

Schauen Sie sich diesen Link http://www.shutdownabort.com/dbaqueries/Performance_Locks_DML.php#Show-locked-Objects – 81967

Verwandte Themen