Virtabs: Laufzeitfehler der Prozeduren

Die folgenden Laufzeitfehler werden ausgelöst, wenn während der Abarbeitung einer Virtab-Prozedur eine bekannte Fehlerbedingung eintritt. Das Auftreten eines Laufzeitfehlers hängt ab von

  • den Argumenten, die der Prozedur übergeben wurden.
  • der Datenlage in der Datenbank.

Ein Laufzeitfehler wird als ORACLE-Exception ausgegeben, die weitere Abarbeitung der Prozedur wird sofort unterbrochen.

Nach einem Laufzeitfehler ist die Datenlage undefiniert,
die Anwendung muss unbedingt
ein ROLLBACK durchführen!

Folgende Fehlerbedingungen werden innerhalb der INSERT-, UPDATE- und DELETE-Prozeduren vom Virtab-Code erkannt:

Fehler-Nr.

Text

Prozedur

Bedeutung

ORA-20000

Eintrag schon vorhanden

insert

Ein Eintrag existiert schon und wird nicht neu angelegt, die Tabelle ist aber MUSTCHANGE.

ORA-20001

Eintrag nicht gefunden

insert

Ein Eintrag existiert (noch) nicht, und kann auch nicht angelegt werden, da die betroffene Tabelle NOCHANGE ist.

ORA-20002

Eintrag nicht vorhanden

update, delete

Beim Zusammensuchen der Records aus den Tabellen konnte ein Record nicht lokalisiert werden (Angaben in Schlüsselfeldern fehlerhaft).

ORA-20003

Auswahl ist mehrdeutig

insert, update, delete

Beim Zusammenstellen der Records aus den Tabellen wurden in einer Tabelle mehrere passende Records gefunden (zu wenig Zweitschlüsselfelder ausgefüllt).

ORA-20004

Bedingung ... nicht erfüllt

insert, update, delete

Das genannte CONSTRAINT ist im aktuellen Virtab-Record nicht erfüllt (falsche Virtab, Eingabefehler).

ORA-20005

Virtab ist NOCHANGE

insert, update, delete

INSERT, UPDATE oder DELETE nicht möglich, die ganze Virtab ist schreibgeschützt.

ORA-20006

Eintrag in MUSTCHANGE-Table nicht geloescht

delete

Der zu löschende Eintrag in einer Tabelle ohne weitere Detailtabellen wird noch von anderen Tabellen referenziert und kann nicht gelöscht werden. Die Tabelle ist aber MUSTCHANGE.

ORA-20007

Eintrag nicht geloescht, obwohl Eintrag aus 1:1-Detail geloescht

delete

Zwei Tabellen sind per "1:1" verknüpft, es müssen also die Einträge in beiden Tabellen gleichzeitig gelöscht werden. Es kann aber nur die Tabelle mit dem Fremdschlüssel gelöscht werden, auf die andere bestehen noch andere Schlüsselverweise

ORA-20008

DB-Error: Eintrag nicht geloescht

delete

Die Datenbank hat ein DELETE-Statement nicht ausgeführen können. Es sollte eine Datenbank-Exception ausgelöst worden sein.

ORA-20009

 

delete

Dieser Fehler weist auf einen  Programmierfehler in der delete-Prozedur hin!

ORA-20010

Fremdschluessel von vorhandenem Record zeigt nicht auf Masterrecord in Table

insert

Durch INSERT entsteht eine Verletzung von Master-Detail-Beziehungen

ORA-20011

CONSTRAINT UNIQUE <feldliste> verletzt

insert, update

Durch die INSERT oder UPDATE-Prozedur wurde ein UNIQUE-Constraint verletzt. Die Virtab-View würde zwei Datenzeilen mit identischen Werten in den Spalten aus <feldliste> anzeigen.

 

[Referenz] [ER2SQL cmdline] [DB-Voraussetzungen] [Definitionsfile-Aufbau] [Syntax: TABLE und LINK] [Syntax: VIRTUALTABLE] [Syntax: TABLE] [Syntax: COLUMN] [Syntax: CONSTRAINT] [Syntax: USES, MODIFY, ...] [Fehler von ER2SQL] [Laufzeitfehler] [Syntax-Hervorhebung] [SQL-Objekt-Namen]