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.
|
|