"Datenmanipulationsoperation, die für diese Ansicht nicht zulässig ist" in einer Benutzertabelle

8

Dieser Fehler tritt auf, wenn ich versuche, Werte in eine Tabelle einzufügen, die zu dem Benutzer gehört, den ich verwende:

%Vor%

An allen Stellen sagen die Leute, dass es beim Einfügen / Aktualisieren / Löschen einer Ansicht auftritt, aber es ist sicherlich eine Tabelle, und der Benutzer hat die erforderlichen Berechtigungen.

Es gibt also noch einen anderen Grund dafür, als dass ich versucht habe, mit einer Ansicht eine illegale Operation durchzuführen?

    
Thiago Melo 16.09.2011, 12:53
quelle

7 Antworten

3

Ich würde die SQL-Ablaufverfolgung aktivieren und die Einfügung erneut versuchen und dann die Ablaufverfolgungsdatei untersuchen, um genau festzustellen, welche SQL-Anweisung den Fehler verursacht.

Wenn, wie von anderen vorgeschlagen, SQL von einem Trigger gegen ein anderes Objekt ausgeführt wird, sehen Sie in der Ablaufverfolgung als rekursives SQL und es ist klar, um welches Objekt es sich handelt.

Wenn in der Ablaufverfolgung kein rekursives SQL vorhanden ist, ist es wahrscheinlich, dass Sie nicht auf das Objekt zugreifen, von dem Sie glauben, dass es es ist. Die Ablaufverfolgung sollte die tatsächliche Objekt-ID anzeigen, die Sie mit dem Datenwörterbuch vergleichen können.

Wenn es wirklich nur eine Tabelle ist und kein rekursives SQL involviert ist, dann klingt es nach einem Argument für die Oracle-Unterstützung.

    
Dave Costa 16.09.2011, 13:30
quelle
4

Eine alternative Antwort: Ich stieß auf diesen Fehler, als ich versuchte, einen Datensatz in eine materialisierte Ansichtstabelle einzufügen.

    
Jeff 14.10.2013 16:32
quelle
3

Als erstes: Bist du wirklich sicher, dass es ein Tisch ist? Wie Sie die Frage formuliert haben, könnte es sein, dass der Benutzer, der dieses Problem hat, nicht die Tabelle besitzt. In diesem Fall gibt es vielleicht ein Synonym oder etwas, das wirklich auf eine Ansicht zeigt.

Zweitens könnte es sein, wenn ein Trigger auf dem Tisch ist und die Aktion, die ausgelöst wird, das Problem verursacht.

    
APC 16.09.2011 13:03
quelle
2

Meine Vermutung ist, dass Sie höchstwahrscheinlich eine materialisierte Ansicht und keine Tabelle betrachten. Suche nach

%Vor%

im Wörterbuch, um den Objekttyp zu sehen.

    
user5554384 12.11.2015 10:57
quelle
1

noch ein Gedanke ...

versuche es mit einer eindeutigen Identifikation auf dem Tisch so:

%Vor%

nur für den Fall, dass es lokal einen anderen gibt ..

    
Randy 16.09.2011 14:08
quelle
1

Ich weiß, das ist ein super alter Post, aber zur Info, der "Tisch" ist eigentlich eine materialisierte Ansicht (mview). Das mview ist nicht konfiguriert, um Updates zuzulassen und Sie können es daher nicht hinzufügen / aktualisieren / löschen.

Sie können eine Liste aller materialisierten Ansichten abrufen, indem Sie Folgendes ausführen:

%Vor%     
dayneo 09.02.2016 10:05
quelle
0

Ein weiterer Fall zur Ausgabe dieses Fehlers ist, wenn Sie versuchen, Daten mit einer Spalte zu aktualisieren, die nicht existiert:

%Vor%
  Die Spalte

street existiert nicht in der Tabelle house

    
manix 27.10.2016 16:18
quelle

Tags und Links