Zuhause / Nachrichten / Merkmale der Fehlerbehandlung des Oracle-Datenbankservers. Oracle-Fehler: Datenbankfehler, Erklärung und Abhilfemaßnahmen Oracle-Ausnahmeoptionen

Merkmale der Fehlerbehandlung des Oracle-Datenbankservers. Oracle-Fehler: Datenbankfehler, Erklärung und Abhilfemaßnahmen Oracle-Ausnahmeoptionen

Ausnahmebehandlung in PL/SQL

Bei jeder prozeduralen Sprache ist es wichtig, sich daran zu erinnern, dass die Programme eine vollständige und von der Datenbank getrennte Einheit sind. Wann immer das Programm Zeilen aus der Datenbank anfordert, muss der Programmierer daher sicherstellen, dass die Anforderung erfolgreich abgeschlossen wurde.

In relationalen Datenbanken übergibt die Datenbank immer eine spezielle Variable namens SQLCODE an jedes aufrufende Programm zurück. Der vom Reach-Aufruf vom Programm an die Datenbank zurückgegebene SQLCODE wird von Oracle in eine benannte boolesche Variable übersetzt (siehe Tabelle unten).

PL/SQL-Ausnahmevariable

ACCESS_INTO_NULL

COLLECTION_IS_NULL

CURSOR_ALREADY_OPEN

DUP_VAL_ON_INDEX

ROWTYPE_MISMATCH

SUBSCRIPT_BEYOND_COUNT

SUBSCRIPT_OUTSIDE_LIMIT

SYS_INVALID_ROWID

TIMEOUT_ON_RESOURCE

Wenn die Datenbank beispielsweise einen SQLCODE=100 zurückgibt, wird die PL/SQL-Variable NO_DATA_FOUND auf TRUE gesetzt.

Ausnahmslos alle PL/SQL-Programme sollten immer dann zum Abbruch gebracht werden, wenn ein unerwarteter SQLCODE von der Oracle-Datenbank zurückgegeben wird.

Dies kann verheerende Auswirkungen auf die Datenbank haben, insbesondere wenn PL/SQL Daten auf der Grundlage falscher Prämissen in Tabellen lädt. Um diese Tragödie zu verhindern, stellt Oracle eine WHEN OTHERS-Variable bereit, die auf TRUE gesetzt wird, wenn ein unerwarteter SQLCODE von der Oracle-Datenbank zurückgegeben wird.

Betrachten Sie beispielsweise den folgenden Code:

ERKLÄREN
err_num ZAHL;
err_msg VARCHAR2(100);
START
...
AUSNAHME
...
WENN ANDERE DANN
err_num:= SQLCODE;
err_msg:= SUBSTR(SQLERRM, 1, 100);
INSERT INTO error VALUES (err_num, err_msg);
ENDE;

Hier sehen wir, dass unsere Ausnahmebehandlung einen EXCEPTIONS-Bereich hat, der WHEN OTHERS testet. Wenn die boolesche Variable WHEN OTHERS TRUE ist, erfasst der PL/SQL-Code den SQLCODE und die zugehörige Fehlermeldung (SQLERRM) und speichert diese Werte in einer speziellen Oracle-Fehlertabelle.

Oracle-Ausnahmebehandlung

Entwickler kennzeichnen häufig Fehlerbedingungen und behandeln sie mithilfe der Oracle-Ausnahmebehandlung und der Verwendung von IF-THEN-Logik.

Oracle-Ausnahmebehandlung mit IF-THEN-Logik zum Kennzeichnen von Fehlern

Das obige Beispiel veranschaulicht die Behandlung von Oracle-Ausnahmen mithilfe der booleschen Variablen bAidAmountOk um eine Bedingung während der Verarbeitung jedes Schülerdatensatzes zu verfolgen.

Diese Verwendung der Oracle-Ausnahmebehandlung wirkt sich auf die Leistung aus. Die Oracle-Ausnahmebehandlung verwendet mehrere Anweisungen, um die Fehlerbedingung zu testen. Jede Oracle-Ausnahmebehandlungsanweisung erfordert CPU-Zyklen, um abgeschlossen zu werden. Ein viel besserer Ansatz beinhaltet die Verwendung der Oracle-Ausnahmebehandlung, um eine Verschwendung von CPU-Zyklen zu vermeiden, wie unten gezeigt:

Verwenden von Oracle-Ausnahmehandlern zur Verbesserung der Leistung.

In diesem Beispiel für die Behandlung von Oracle-Ausnahmen ist die xAID_AMOUNT_OK Ausnahme wird explizit innerhalb der Schleife ausgelöst. Dadurch kann die Ausführung die Anweisungen überspringen, die nach der Prüfung des Notendurchschnitts des Schülers erfolgen, wodurch die bei der Oracle-Ausnahmebehandlung verwendete CPU eingespart wird.

Die Behandlung von Oracle-Ausnahmen ist äußerst leistungseffizient. Wenn eine Oracle-Ausnahme ausgelöst wird, werden alle nachfolgenden Anweisungen innerhalb des Blocks umgangen, sodass die Ausnahme von einem Oracle-Ausnahmehandler behandelt werden kann. Die Oracle-Ausnahmebehandlung kann verwendet werden, um die Leistung erheblich zu steigern.

Burleson ist das amerikanische Team

Notiz: Diese Oracle-Dokumentation wurde als Support- und Oracle-Schulungsreferenz zur Verwendung durch unsere DBA-Leistungsoptimierungs-Beratungsexperten erstellt. Zögern Sie nicht, Fragen in unserem Oracle-Forum zu stellen.

Verifizieren Erfahrung! Jeder, der erwägt, die Dienste eines Oracle Support-Experten in Anspruch zu nehmen, sollte seine Referenzen und Erfahrungen unabhängig prüfen und sich nicht auf Werbung und selbsternanntes Fachwissen verlassen. Alle legitimen Oracle-Experten veröffentlichen ihre .

Errata? Leistungsoptimierung


Urheberrecht 1996 - 2017

Alle Rechte liegen bei Burleson

® ist das eingetragene Warenzeichen der Oracle Corporation.

Remote-Notfallunterstützung von Conversational

In diesem Kapitel werden wir Ausnahmen in PL/SQL besprechen. Eine Ausnahme ist ein Fehlerzustand während einer Programmausführung. PL/SQL unterstützt Programmierer dabei, solche Bedingungen abzufangen AUSNAHME Block im Programm und es wird eine geeignete Maßnahme gegen die Fehlerbedingung ergriffen. Es gibt zwei Arten von Ausnahmen −

  • Systemdefinierte Ausnahmen
  • Benutzerdefinierte Ausnahmen

Syntax für die Ausnahmebehandlung

Die allgemeine Syntax für die Ausnahmebehandlung lautet wie folgt. Hier können Sie so viele Ausnahmen wie möglich auflisten. Die Standardausnahme wird mit behandelt WENN andere DANN

ERKLÄREN START AUSNAHME WENN Ausnahme1 DANN Ausnahme1-Behandlungsanweisungen WENN Ausnahme2 DANN Ausnahme2-Behandlungsanweisungen WENN Ausnahme3 DANN Ausnahme3-Behandlungsanweisungen ........ WENN andere DANN Ausnahme3-Behandlungsanweisungen END;

Beispiel

Lassen Sie uns einen Code schreiben, um das Konzept zu veranschaulichen. Wir werden die CUSTOMERS-Tabelle verwenden, die wir in den vorherigen Kapiteln erstellt und verwendet haben −

DECLARE c_id customers.id%type:= 8; c_name kundeS.Name%typ; c_addr kunden.adresse%typ; BEGIN SELECT name, address INTO c_name, c_addr FROM customers WHERE id = c_id; DBMS_OUTPUT.PUT_LINE("Name: "|| c_name); DBMS_OUTPUT.PUT_LINE("Adresse: " || c_addr); EXCEPTION WHEN no_data_found THEN dbms_output.put_line("Kein solcher Kunde!"); WENN andere DANN dbms_output.put_line("Fehler!"); ENDE; /

Kein solcher Kunde! PL/SQL-Prozedur erfolgreich abgeschlossen.

Das obige Programm zeigt den Namen und die Adresse eines Kunden an, dessen ID angegeben ist. Da in unserer Datenbank kein Kunde mit dem ID-Wert 8 vorhanden ist, löst das Programm die Laufzeitausnahme aus KEINE DATEN GEFUNDEN, die in der erfasst wird AUSNAHME-Block.

Ausnahmen auslösen

Ausnahmen werden vom Datenbankserver automatisch ausgelöst, wenn ein interner Datenbankfehler auftritt, Ausnahmen können jedoch explizit vom Programmierer mithilfe des Befehls ausgelöst werden HEBEN. Es folgt die einfache Syntax zum Auslösen einer Ausnahme −

Ausnahmename DECLARE AUSNAHME; BEGIN IF condition THEN RAISE exception_name; ENDE WENN; AUSNAHME WHEN Ausnahmename THEN-Anweisung; ENDE;

Sie können die obige Syntax verwenden, um die Oracle-Standardausnahme oder eine beliebige benutzerdefinierte Ausnahme auszulösen. Im nächsten Abschnitt geben wir Ihnen ein Beispiel zum Auslösen einer benutzerdefinierten Ausnahme. Sie können die Oracle-Standardausnahmen auf ähnliche Weise auslösen.

Benutzerdefinierte Ausnahmen

PL/SQL ermöglicht es Ihnen, Ihre eigenen Ausnahmen entsprechend den Anforderungen Ihres Programms zu definieren. Eine benutzerdefinierte Ausnahme muss deklariert und dann explizit ausgelöst werden, entweder mit einer RAISE-Anweisung oder der Prozedur DBMS_STANDARD.RAISE_APPLICATION_ERROR.

Die Syntax zum Deklarieren einer Ausnahme lautet −

DECLARE meine-Ausnahme AUSNAHME;

Beispiel

Das folgende Beispiel veranschaulicht das Konzept. Dieses Programm fragt nach einer Kunden-ID, wenn der Benutzer eine ungültige ID eingibt, die Ausnahme Ungültige ID wird angehoben.

DECLARE c_id kunden.id%type:= &cc_id; c_name kundeS.Name%typ; c_addr kunden.adresse%typ; -- benutzerdefinierte Ausnahme ex_invalid_id EXCEPTION; BEGIN IF c_id<= 0 THEN RAISE ex_invalid_id; ELSE SELECT name, address INTO c_name, c_addr FROM customers WHERE id = c_id; DBMS_OUTPUT.PUT_LINE ("Name: "|| c_name); DBMS_OUTPUT.PUT_LINE ("Address: " || c_addr); END IF; EXCEPTION WHEN ex_invalid_id THEN dbms_output.put_line("ID must be greater than zero!"); WHEN no_data_found THEN dbms_output.put_line("No such customer!"); WHEN others THEN dbms_output.put_line("Error!"); END; /

Wenn der obige Code an der SQL-Eingabeaufforderung ausgeführt wird, erzeugt er das folgende Ergebnis −

Geben Sie den Wert für cc_id ein: -6 (lassen Sie uns einen Wert von -6 eingeben) alt 2: c_id kunden.id%typ:= &cc_id; neu 2: c_id kunden.id%typ:= -6; ID muss größer als Null sein !PL/SQL-Prozedur erfolgreich abgeschlossen.

Vordefinierte Ausnahmen

PL/SQL bietet viele vordefinierte Ausnahmen, die ausgeführt werden, wenn eine Datenbankregel von einem Programm verletzt wird. Beispielsweise wird die vordefinierte Ausnahme NO_DATA_FOUND ausgelöst, wenn eine SELECT INTO-Anweisung keine Zeilen zurückgibt. Die folgende Tabelle listet einige der wichtigen vordefinierten Ausnahmen auf −

Ausnahme Oracle-Fehler SQLCODE Beschreibung
ACCESS_INTO_NULL 06530 -6530 Es wird ausgelöst, wenn einem Nullobjekt automatisch ein Wert zugewiesen wird.
CASE_NOT_FOUND 06592 -6592 Es wird ausgelöst, wenn keine der Auswahlmöglichkeiten in der WHEN-Klausel einer CASE-Anweisung ausgewählt ist und keine ELSE-Klausel vorhanden ist.
COLLECTION_IS_NULL 06531 -6531 Es wird ausgelöst, wenn ein Programm versucht, andere Sammelmethoden als EXISTS auf eine nicht initialisierte verschachtelte Tabelle oder ein varray anzuwenden, oder das Programm versucht, den Elementen einer nicht initialisierten verschachtelten Tabelle oder eines varray Werte zuzuweisen.
DUP_VAL_ON_INDEX 00001 -1 Es wird ausgelöst, wenn versucht wird, doppelte Werte in einer Spalte mit eindeutigem Index zu speichern.
INVALID_CURSOR 01001 -1001 Es wird ausgelöst, wenn versucht wird, eine nicht zulässige Cursoroperation durchzuführen, z. B. das Schließen eines ungeöffneten Cursors.
UNGÜLTIGE NUMMER 01722 -1722 Es wird ausgelöst, wenn die Konvertierung einer Zeichenfolge in eine Zahl fehlschlägt, weil die Zeichenfolge keine gültige Zahl darstellt.
ANMELDUNG_VERWEIGERT 01017 -1017 Es wird ausgelöst, wenn ein Programm versucht, sich mit einem ungültigen Benutzernamen oder Kennwort bei der Datenbank anzumelden.
KEINE DATEN GEFUNDEN 01403 +100 Es wird ausgelöst, wenn eine SELECT INTO-Anweisung keine Zeilen zurückgibt.
NOT_LOGGED_ON 01012 -1012 Es wird ausgelöst, wenn ein Datenbankaufruf ausgegeben wird, ohne mit der Datenbank verbunden zu sein.
PROGRAMM_FEHLER 06501 -6501 Es wird ausgelöst, wenn PL/SQL ein internes Problem hat.
ROWTYPE_MISMATCH 06504 -6504 Es wird ausgelöst, wenn ein Cursor einen Wert in einer Variablen mit inkompatiblem Datentyp abruft.
SELF_IS_NULL 30625 -30625 Es wird ausgelöst, wenn eine Mitgliedsmethode aufgerufen wird, aber die Instanz des Objekttyps nicht initialisiert wurde.
SPEICHER_FEHLER 06500 -6500 Es wird ausgelöst, wenn PL/SQL der Speicher ausgeht oder der Speicher beschädigt wurde.
TOO_MANY_ROWS 01422 -1422 Es wird ausgelöst, wenn eine SELECT INTO-Anweisung mehr als eine Zeile zurückgibt.
VALUE_ERROR 06502 -6502 Es wird ausgelöst, wenn ein Arithmetik-, Konvertierungs-, Kürzungs- oder Größenbeschränkungsfehler auftritt.
ZERO_DIVIDE 01476 1476 Es wird ausgelöst, wenn versucht wird, eine Zahl durch Null zu teilen.

Ph.D. Vladimir Likhachev, Pädagogische Universität Kaluga, benannt nach K. E. Tsiolkovsky

Für Programme, die mit Datenbanken arbeiten, ist es wichtig, nicht nur ihre Fehler richtig zu behandeln, sondern auch informative Meldungen über diese Fehler zu generieren. Das Vorhandensein solcher Meldungen ermöglicht es Ihnen, die Ursachen schnell zu identifizieren und Fehler zu beheben. Dies gilt insbesondere bei der Arbeit mit dem Endanwenderprogramm, da dieser in den meisten Fällen nicht nur den Aufbau einer bestimmten Datenbank kennt, sondern auch die theoretischen Grundlagen relationaler Datenbanken.

Seltsamerweise ist die Situation bei der Bildung von Fehlermeldungen in Programmen oft ganz anders als bei der Bearbeitung von Fehlern selbst. Beim Umgang mit Fehlern lässt sich meist eine gemeinsame Strategie entwickeln, die es erlaubt, deren Bearbeitung in einer oder mehreren Funktionen zu lokalisieren. Ein ähnlicher Ansatz für Fehlermeldungen kann auf der Grundlage implementiert werden, dass der Oracle-Server in der Fehlermeldung die Art des Fehlers und das verursachende Datenbankobjekt angibt. Solche Objekte sind in der Regel Constraints, wie Primary, Unique und Foreign Keys, Unique Indexes, „not null“ Constraints etc. Detaillierte Informationen zu diesen Constraints können den Systemtabellen und Datenbankansichten sowie den veränderbaren Werten entnommen werden und geändert werden können, führte zu einem Fehler. Das Problem ist jedoch, dass die Implementierung eines solchen Mechanismus zum Generieren von Fehlermeldungen in realen Anwendungen auf eine Reihe von Schwierigkeiten stößt:

  • Die Abhängigkeit der Fehlermeldung vom Zweck des Programms. Auch bei Programmen, die mit derselben Datenbank arbeiten, kann es notwendig sein, unterschiedliche Meldungen über denselben Fehler zu generieren. Beispielsweise sollte in einem Programm zum Bearbeiten von Benutzerdaten die Meldung lauten: „Ein Produkt mit diesem Namen ist bereits registriert! Überprüfen Sie den Produktnamen!“. Im Datenimportprogramm wird jedoch eine Meldung mit einem ganz anderen Inhalt benötigt: "Importierte Daten werden dupliziert - überprüfen Sie das Datum, für das die Daten importiert werden!".
  • Schwierigkeiten beim Generieren von Nachrichten für einige Fehler, die durch Datenbankbeschränkungen verursacht werden. Beispielsweise können CHECK-Einschränkungen für Tabellen ziemlich komplexe Abfragen und Bedingungen verwenden. Daher kann die Bildung von Nachrichten basierend auf ihrer Analyse eine ziemlich schwierige Aufgabe sein.
  • Verwenden von benutzerdefinierten Namen von Tabellen und Spalten in Clientprogrammen, die sich von ihren Namen in der Datenbank unterscheiden. Beispielsweise hat die Tabelle den Namen „WAREN“, und in der Client-Anwendung können die Daten dieser Tabelle im Verzeichnis als „Produkte“ oder „Produkte“ angezeigt werden.

Die Kombination dieser Faktoren führt in der Regel dazu, dass die Bildung von Meldungen auch über gleichartige Fehler für jede Transaktion individuell durchgeführt wird. Dadurch wird der Code zum Generieren von Fehlermeldungen in der Anwendung verteilt, was deren Wartung erschwert. Da für fast jeden möglichen Fehler Code geschrieben werden muss, erweisen sich einige der Fehler, die dem Entwickler bekannt sind, als ohne entsprechende Meldungen an den Benutzer. Dadurch werden nur für einen Teil der Fehler ausreichend aussagekräftige Meldungen für den Endbenutzer gebildet, in anderen Fällen muss er sich bestenfalls mit Meldungen des Datenbankservers selbst begnügen. Die Aussagekraft solcher Meldungen für den durchschnittlichen Benutzer reicht in den meisten Fällen nicht aus, um die Ursache des Problems zu identifizieren und zu beseitigen.

Die im Artikel betrachtete Methode, aussagekräftige Fehlermeldungen für den Benutzer zu generieren, ist ziemlich universell und kann sowohl in Client-Anwendungen als auch auf der Seite des Oracle-Servers implementiert werden. Es kann in verschiedenen Arten von Programmen verwendet werden, wie z.

  • Programme, die eine spezielle Schnittstelle verwenden, um Datenbankdaten einzugeben und zu ändern. Aussagekräftige Fehlermeldungen können in den meisten Fällen aus einer Analyse der Datenbankstruktur gewonnen werden. Dadurch wird der Benutzer mit minimalem Aufwand von Entwicklern und Software über ihre Ursache informiert.
  • Programme mit der Fähigkeit, beliebige SQL-Abfragen durch den Benutzer zu erstellen. Die Bildung von Nachrichten basierend auf der Analyse der Datenbankstruktur kann insbesondere für Programme relevant sein, die auf einen breiten Benutzerkreis abzielen, einschließlich solcher mit einem geringen Wissensstand auf diesem Gebiet. Dadurch werden Fehlermeldungen in SQL-Abfragen für den Benutzer verständlicher.
  • Themenplattformen. Die Verwendung der im Artikel beschriebenen Methoden ermöglicht es der betreffenden Plattform selbst, informative Datenbankfehlermeldungen basierend auf der Analyse ihrer Struktur zu generieren. Dadurch wird es möglich, den Sprachcode der Plattform zu kürzen, der zur Behandlung von Fehlersituationen verwendet wird. Und Fehler, die spezielle Meldungen erfordern, sich aber als ohne sie erwiesen haben, sind informativ genug, um die Identifizierung ihrer Ursache viel einfacher zu machen.

Die oben beschriebenen Probleme der Meldungsbildung können gelöst werden, wenn Fehlermeldungen herkömmlicherweise in zwei Gruppen eingeteilt werden:

  • universelle Nachrichten, die auf der Grundlage der Analyse der Datenbankstruktur gebildet werden;
  • Sondermeldungen, die für jeden Fehler individuell definiert werden.

Die im Artikel beschriebene Methode zum Generieren von Datenbankfehlermeldungen kann auf viele relationale Datenbankserver angewendet werden. Ein Beispiel für die Verwendung für Firebird-Serverdatenbanken wird in dem Artikel besprochen. Wenn die Client-Anwendung in Object Pascal (Delphi, Kylix, Free Pascal) entwickelt wird, können die Fähigkeiten der JEDI-Bibliothek nützlich sein, um die Ursachen unerwarteter Fehler zu identifizieren.

1. Universelle Fehlermeldungen, die durch Datenbankeinschränkungen verursacht werden

Wie oben erwähnt, besteht die Hauptidee bei der Erstellung von universellen Nachrichten darin, basierend auf den Daten aus der Fehlermeldung von Oracle und der Datenbankstruktur eine Nachricht zu bilden, die für den Endbenutzer ausreichend informativ und verständlich ist. Nehmen wir an, dass der Benutzer versucht, in der Tabelle „WAREN“ (Skript 1.1) ein Produkt mit einem Namen (Spalte „TITEL“) hinzuzufügen, das bereits in der Tabelle vorhanden ist.

CREATE TABLE DEMO.GOODS (CODE INTEGER NOT NULL , TITLE VARCHAR2(50 byte) NOT NULL , PRICE NUMBER(16, 2) NOT NULL , CONSTRAINT CK_PRICE CHECK (PRICE > 0), CONSTRAINT PK_GOODS PRIMARY KEY (CODE)); KOMMENTAR ZUR TABELLE DEMO.GOODS ist "Waren"; KOMMENTAR ZUR SPALTE DEMO.GOODS.CODE ist "Produktcode"; KOMMENTAR ZUR SPALTE DEMO.GOODS.TITLE ist "Titel"; KOMMENTAR ZUR SPALTE DEMO.GOODS.PRICE ist "Preis"; EINDEUTIGEN INDEX DEMO.IDX_GOODS_TITLE AUF DEMO.GOODS(TITEL) ERSTELLEN;

Skript 1.1. Erstellung der Tabelle „WAREN“.

Der Server generiert in diesem Fall einen Fehler, da die Spalte „TITLE“, in der der Name des Produkts gespeichert ist, im eindeutigen Index „DEMO.IDX_GOODS_TITLE“ enthalten ist:

Stattdessen kann eine Nachricht für den Benutzer gebildet werden, beispielsweise eine der Nachrichten:

  • Der Wert des Feldes „Name“ in der Tabelle „Produkte“ muss eindeutig sein!
  • Ein Produkt mit diesem Namen ist bereits registriert! Überprüfen Sie den Produktnamen!
  • Produkte mit gleichem Namen dürfen nicht im Produktverzeichnis sein!

Obwohl sich diese Meldungen unterscheiden, geben sie alle Informationen über das Objekt an, für das die Eindeutigkeitsbeschränkung verletzt wird – dies ist das Feld „Name“ der Tabelle „Produkte“.

Eines der Probleme beim Generieren dieser Art von Meldung besteht darin, dass benutzerdefinierte Feld- und Tabellennamen sich von Tabellen- und Spaltennamen in der Datenbank unterscheiden. Damit der Benutzer die Fehlermeldung versteht, muss er benutzerdefinierte Namen verwenden. Eine separate Tabelle oder Kommentare für Tabellen und Spalten können verwendet werden, um Tabellen- und Feldnamen mit ihren benutzerdefinierten Namen abzugleichen. Die letztere Option kann als vorzuziehen angesehen werden, da Sie damit gleichzeitig die Datenbank dokumentieren können. Deshalb werden in Skript 1.1 die benutzerdefinierten Namen als Kommentare für die Tabelle und ihre Spalten angegeben. Wenn wir die obigen Nachrichten und Kommentare für die Tabelle und die Spalten vergleichen, sehen wir, dass die Bildung der ersten Nachricht die einfachste Option ist. Um die anderen beiden Nachrichten zu bilden, kann eine lexikalische Synthese erforderlich sein, aber dies ist eine separate Aufgabe. Ich möchte Sie darauf aufmerksam machen, dass in Zukunft im Artikel nur noch eine der möglichen Meldungsoptionen für jeden Fehlerfall angegeben wird. In der Praxis kann die Wahl des Nachrichtenstils und -inhalts von einer Reihe von Faktoren abhängen und wird vom Systemdesigner bestimmt.

Natürlich kann nicht ausgeschlossen werden, dass zu einer Tabelle oder Spalte keine Kommentare vorhanden sind, die in die Nachricht aufgenommen werden sollen. In diesem Fall zeigt die Fehlermeldung möglicherweise direkt den Namen der Tabelle oder Spalte an.

2. Der Wert des Pflichtfeldes ist nicht angegeben (Einschränkung NOT NULL)

Dieser Fehler wird vom Server in mehreren Fällen generiert:

  • die Bedingung "not null" für die Spalte wurde verletzt;
  • Für eine Spalte, die Teil eines eindeutigen Indexes, Hauptschlüssels oder eindeutigen Schlüssels ist, wurde kein Wert angegeben.

In all diesen Fällen generiert der Server einen Fehler:

Um die Tabellen- und Spaltenbeschreibung aus der Fehlermeldung zu erhalten, kann die Abfrage 2.1 verwendet werden.

wählen Sie tc.comments als table_comment, cc.comments als column_comment aus von all_tab_columns c, all_tab_comments tc, all_col_comments cc c.owner und cc.table_name = c.table_name und cc.column_name = c.column_name

Anfrage 2.1. Rufen Sie eine Tabellen- und Spaltenbeschreibung ab

Als Abfrageparameter „owner“, „table_name“, „column_name“ müssen Sie jeweils den Namen des Schemas, der Tabelle und der Spalte aus der Fehlermeldung angeben. Die Abfrage gibt die Kommentare für die Tabelle und Spalte zurück.

Anhand der Ergebnisse dieser Abfrage kann eine Fehlermeldung generiert werden, beispielsweise mit folgendem Inhalt:

Sie müssen den Wert der Spalte "<Описание поля>"in der Tabelle"<Описание таблицы>" bei<добавлении новой/изменении>Aufzeichnungen.

3. Die Eindeutigkeit des Wertes eines Feldes oder einer Reihe von Spalten ist gebrochen

Die Notwendigkeit, einen eindeutigen Wert für eine Spalte einzugeben, kann hauptsächlich in drei Fällen erforderlich sein:

  • die Säule ist Teil des Hauptschlüssels;
  • die Spalte ist im eindeutigen Schlüssel enthalten;
  • Die Spalte ist in einem eindeutigen Index enthalten.

In allen drei Fällen generiert Oracle Database denselben Fehler:
ORA-00001: Eindeutigkeitsbeschränkung verletzt (<Схема>.<Ограничение>)

Die Fehlermeldung gibt die Einschränkung an, die den Fehler verursacht hat. Um Informationen über die in den Haupt- oder eindeutigen Schlüsseln enthaltenen Spalten zu erhalten, können Sie Abfrage 3.1 verwenden, um Informationen über den Index zu erhalten - Abfrage 3.2.

Wählen Sie dcs.constraint_type, cc.table_name, tc.comments als table_comment, cc.column_name, ccom.comments als column_comment aus von all_cons_columns cc join all_tab_comments tc on (tc.owner = cc.owner and tc.table_name = cc.table_name) join all_col_comments ccom on (ccom.owner = cc.owner and ccom.table_name = cc.table_name and ccom.column_name = cc. column_name) join all_constraints dcs on (dcs.constraint_name = cc.constraint_name), wobei cc.owner = :owner und cc.constraint_name = :key_name
Anfrage 3.1. Abrufen von Informationen über die Spalten der Tabelle, die in den Haupt- oder eindeutigen Schlüsseln enthalten sind.
wählen Sie ic.table_name, tc.comments als table_comment, ic.column_name, ccom.comments als column_comment aus von all_ind_columns ic join all_tab_comments tc on (tc.owner = ic.table_owner and tc.table_name = ic.table_name) join all_col_comments ccom on (ccom.owner = ic.table_owner and ccom.table_name = ic.table_name and ccom.column_name = ic. Spaltenname), wobei Tabelleneigentümer = :Eigentümer und Indexname = :Indexname
Anfrage 3.2. Abrufen von Informationen über die Spalten der Tabelle, die im Index enthalten sind.

Abfrageparameter sind Schemaname ("owner"), Schlüsselname ("key_name") oder Indexname ("index_name"). Die Abfragen geben die Namen und Kommentare für die Tabellen und Spalten in der Einschränkung zurück. Abfrage 3.1 gibt auch den Einschränkungstyp ("constraint_type") zurück: "P" - Hauptschlüssel, "U" - eindeutiger Schlüssel. Die Anzahl der von Abfragen zurückgegebenen Datensätze stimmt mit der Anzahl der Spalten in der Unique-Einschränkung überein.

Basierend auf den erhaltenen Informationen über die Eindeutigkeitsbeschränkung für den Benutzer können Varianten von Fehlermeldungen generiert werden, beispielsweise die in Abschnitt 1 angegebenen.

4. Fehler, die durch Fremdschlüsseleinschränkungen verursacht werden

Beim Ausführen von Operationen an Tabellendaten, die mit Fremdschlüsseln verknüpft sind, gibt es mehrere Gründe, die zu Fehlern führen:

1. Der untergeordneten Tabelle wird ein Datensatz hinzugefügt, in dem die im Fremdschlüssel enthaltene Spalte keinen entsprechenden Wert in der Haupttabelle hat. Eine ähnliche Situation tritt auf, wenn der Wert einer Spalte einer untergeordneten Tabelle geändert wird, wenn der neue Spaltenwert nicht in der Haupttabelle vorhanden ist. Oracle Database generiert in diesem Fall einen Fehler:

  1. Es wird versucht, den Wert einer Spalte in der übergeordneten Tabelle zu ändern, auf die in der untergeordneten Tabelle verwiesen wird. Für diesen Fall generiert Oracle Database einen Fehler:
  1. Es wird versucht, Daten in der Haupttabelle zu löschen, auf die in der untergeordneten Tabelle verwiesen wird. Wenn in der Definition einer Beziehung zwischen Tabellen für einen Datenlöschvorgang eine „NO ACTION“-Einschränkung angegeben ist, lässt Oracle das Löschen von Daten aus der Haupttabelle nicht zu, wenn die untergeordnete Tabelle Datensätze enthält, die mit dem zu löschenden Datensatz verknüpft sind. Für diese Situation generiert Oracle Database einen ähnlichen Fehler wie im vorherigen Fall.

Sie können Abfrage 4.1 unten verwenden, um Informationen über die Spalten der Haupt- und untergeordneten Tabellen zu erhalten, die Teil des Fremdschlüssels sind.

wählen Sie a.constraint_name, a.table_name, tc1.comments als table_comment, a2.column_name, cc1.comments als column_comment, b.owner als r_owner, b.table_name als r_table_name, tc2.comments als r_table_comment, b2.column_name als r_column_name, cc2 .comments als r_column_comment von all_constraints a, all_constraints b, all_constraints_columns a2, all_cons_columns b2, all_tab_comments tc1, all_col_comments cc1, all_tab_comments tc2, all_col_comments cc2 wobei a.owner = :owner und a.constraint_type = "R" und a.constraint_name = :foreign_key und in b.constraint_type = :foreign_key und in b.constraints ("P", "U") und b.constraint_name = a.r_constraint_name und b.owner = a.r_owner und a2.constraint_name = a.constraint_name und a2.table_name = a.table_name und a2.owner = a.owner and b2.constraint_name = b.constraint_name und b2.table_name = b.table_name und b2.owner = b.owner und b2.position = a2.position und tc1.owner = a.owner und tc1.table_name = a.table_name und cc1. Eigentümer = a2.Eigentümer und cc1.Tabellenname = a2.Tabellenname und cc1.Spaltenname = a2.Spaltenname und tc2.Eigentümer = b.Eigentümer und tc2.Tabellenname = b.Tabellenname und cc2.Eigentümer = b2.Eigentümer und cc2.Tabellenname = b2.table_name und cc2.column_name = b2.column_name
Anfrage 4.1. Abrufen von Informationen über einen Fremdschlüssel.

Die Anfrage hat zwei Parameter: „owner“ und „foreign_key“ – Schema und Fremdschlüssel, über die Sie Informationen erhalten möchten. Es gibt Informationen über die im Fremdschlüssel enthaltenen Spalten zurück: "table_name", "table_comment" - der Name und die Beschreibung der untergeordneten Tabelle; "column_name", "column_comment" - der Name und die Beschreibung der Spalte der untergeordneten Tabelle. Abfragespalten mit dem Präfix „r_“ geben Informationen über die Haupttabelle zurück. Die Anzahl der von der Abfrage zurückgegebenen Datensätze entspricht der Anzahl der im Fremdschlüssel enthaltenen Spalten.

Basierend auf diesen Informationen können Fremdschlüssel-Fehlermeldungen für den Benutzer generiert werden.

5. Spezielle Fehlermeldungen, die durch Datenbankeinschränkungen verursacht werden

Die Verwendung spezieller Meldungen kann erforderlich werden, wenn die universelle Fehlermeldung aus irgendeinem Grund nicht verwendet oder nicht generiert werden kann. Ein Beispiel für den letzteren Fall sind CHECK-Einschränkungen für Tabellen. Unter eingeschränkten Bedingungen können Abfragen und Bedingungen verwendet werden, deren Analyse eine ziemlich schwierige Aufgabe sein kann. Daher ist es für diese Einschränkungen oft bequemer, Nachrichten zu verwenden, die zur Entwurfszeit definiert werden.

Es können zwei Gruppen von speziellen Fehlermeldungen unterschieden werden. Die erste Art von Sondermeldungen ist für alle Anwendungen gedacht, die mit einer gemeinsamen Datenbasis arbeiten. Sie können grob als "spezielle Fehlermeldungen auf Datenbankebene" bezeichnet werden. Die zweite Gruppe von Nachrichten ist anwendungsspezifisch. Sie werden möglicherweise benötigt, wenn verschiedene Anwendungen dem Benutzer unterschiedliche Meldungen über denselben Fehler geben müssen. Sie können vorläufig als "spezielle Fehlermeldungen auf Anwendungsebene" bezeichnet werden. Es ist praktisch, Informationen über die erste Gruppe von Nachrichten in der Datenbank selbst zu speichern und dafür eine separate Tabelle zu verwenden. Programmspezifische Nachrichten können in seinen Ressourcen beispielsweise als separate Datei oder auch in einer Datenbank gespeichert werden. Besondere Meldungen können anhand des Fehlercodes, des Schemanamens und eines oder mehrerer Schlüsselwörter aus der Fehlermeldung identifiziert werden.

6. CHECK-Einschränkungsfehlermeldungen für Tabellen

Wenn aufgrund einer CHECK-Einschränkung für eine Tabelle ein Fehler auftritt, generiert der Server einen Fehler:
ORA-02290: CHECK-Integritätsbeschränkung verletzt (<Схема>.<Имя ограничения>)

Wie oben erwähnt, ist es oft praktisch, spezielle Meldungen für solche Fehler zu verwenden. Beispielsweise kann die Einschränkung „CK_PRICE“ für die Tabelle „GOODS“ eine benutzerdefinierte Nachricht verwenden, die in der benutzerdefinierten Nachrichtentabelle gespeichert ist:

7. Umfassende Verwendung von benutzerdefinierten und generischen Fehlermeldungen

Ein flexibler Mechanismus zur Generierung informativer Fehlermeldungen für den Benutzer ist in mehreren Stufen implementiert (Abb. 1):

1. Geben Sie eine benutzerdefinierte Fehlermeldung auf Anwendungsebene aus. Das Programm sucht zunächst unter den spezifischen Meldungen für diese Anwendung nach einer Fehlermeldung. Wenn eine solche Nachricht gefunden wird, wird sie angezeigt, und die Bildung der Nachricht ist abgeschlossen.

2. Ausgabe einer speziellen Fehlermeldung auf Datenbankebene. Wenn in Schritt 1 keine Meldung gefunden wurde, wird nach einer speziellen Fehlermeldung auf Datenbankebene gesucht. Falls gefunden, wird es dem Benutzer angezeigt und die Fehlermeldungsgenerierung endet dort.

3. Anzeigen einer Nachricht basierend auf der Analyse der Datenbankstruktur (Universalnachricht). Wenn in den vorherigen Phasen keine speziellen Nachrichten gefunden wurden, wird sie basierend auf der Analyse der Datenbankstruktur gebildet. Sie wird dem Benutzer angezeigt und dies vervollständigt die Bildung der Nachricht.

4. Anzeige einer Nachricht vom Datenbankserver. Wenn in den vorherigen drei Schritten keine Meldung für den Benutzer generiert wurde, wird eine Fehlermeldung von Oracle angezeigt. Diese Situation kann aus mehreren Gründen auftreten. Beispielsweise wenn ein benutzerdefinierter Fehler auftritt, der absichtlich in einer gespeicherten Prozedur oder einem Trigger mithilfe der Funktion RAISE_APPLICATION_ERROR generiert wurde und dessen Inhalt nicht geändert werden muss.

Komplexere Fälle als die in diesem Artikel angegebenen sind möglich. Zum Beispiel, wenn die Nachricht in einer gespeicherten Prozedur generiert wird, die wiederum von einem Trigger oder einer anderen gespeicherten Prozedur aufgerufen werden kann. In diesem Fall benötigen Sie möglicherweise auch Informationen darüber, wie die Prozedur aufgerufen wurde, die die Fehlermeldung generiert hat. So kann die ursprüngliche Nachricht beispielsweise anhand von Informationen über den Call Stack von Stored Procedures und Triggern ergänzt oder verändert werden.

In einigen Fällen können solche Nachrichten noch informativer sein als die in den vorherigen Phasen generierten. Anstelle der Einschränkung CK_PRICE für die Tabelle DEMO.GOODS (Skript 1.1) können Sie beispielsweise vor dem Einfügen und Aktualisieren des Datensatzes die erforderliche Prüfung im Trigger durchführen und eine Nachricht für den Benutzer in einem bereits "bereiten" Formular generieren:

Wenn der Preis eines Produkts kleiner oder gleich Null ist, generiert der Server einen Fehler, zum Beispiel:

Die Client-Anwendung kann diese Nachricht sofort ohne Änderung an den Benutzer senden.

Ein weiterer Grund kann das Auftreten eines Fehlers sein, für den die Bildung einer Meldung nicht vorgesehen ist.

Reis. 1. Die Sequenz zum Generieren einer Datenbankfehlermeldung.

Ich möchte darauf hinweisen, dass selbst wenn die Anwendung nur spezielle Fehlermeldungen verwendet, die Verwendung einer gemeinsamen Funktion zum Generieren von Nachrichten die Struktur des Programms verbessert. Bei Bedarf kann das Format von Sondermeldungen Links zum Hilfesystem, Bildern usw. unterstützen. Das beschriebene Verfahren zum Generieren von Datenbankfehlermeldungen konzentriert sich mehr auf die Implementierung in der Client-Anwendung. Gleichzeitig kann es serverseitig in Stored Procedures, Tabellentriggern sowie in Systemtriggern für das Datenbank- oder Schema-SERVERERROR-Ereignis verwendet werden.

Fazit

Der Zweck dieses Artikels besteht darin, die Hauptideen einer Methode aufzuzeigen, die verwendet werden kann, um informative Oracle-Datenbankfehlermeldungen für den Endbenutzer zu generieren. Obwohl einige Implementierungspunkte außerhalb des Rahmens des Artikels blieben, möchte ich hoffen, dass der im Artikel beschriebene Ansatz die Arbeitskosten in der Softwareentwicklung senkt und ihre Zuverlässigkeit und Qualität verbessert.

Beim Auftreten von Ausnahmen ist es wichtig, benutzerfreundliche Fehlermeldungen auszugeben. Ausnahmen wurden bereits im Abschnitt über grundlegende PL/SQL-Blöcke erwähnt. Jetzt ist es an der Zeit, sie genauer zu betrachten.

Ausnahmen

Eine Ausnahme ist eine Fehlerbedingung, die aktiviert wird - oder erregt - wenn ein Problem auftritt. Es gibt viele verschiedene Ausnahmen, die jeweils mit einer bestimmten Art von Problem verbunden sind. Wenn eine Ausnahme auftritt, stoppt die Codeausführung bei der Anweisung, die die Ausnahme ausgelöst hat, und die Steuerung wird an den Teil des Blocks übertragen, der die Ausnahme behandelt. Wenn der Block keinen ausführbaren Abschnitt enthält, versucht PL/SQL, einen ausführbaren Abschnitt darin zu finden einschließlich Grundeinheit (umschließender Basisblock), d.h. in einem Block außerhalb des Codes, der die Ausnahme ausgelöst hat. Wenn es für diese Ausnahme im unmittelbar einschließenden Block keinen Behandler gibt, wird die Suche in Blöcken der nächsten Ebenen fortgesetzt, bis ein geeigneter Behandler gefunden wird, und wenn er nicht gefunden wird, dann stoppt die Programmausführung mit einer unbehandelten Fehlermeldung.

Der Ausnahmebehandlungsteil des Blocks ist der ideale Ort, um informative Fehlermeldungen auszugeben und auszuführen Reinigung (Bereinigung), mit der Sie alles entfernen können, was in Zukunft Verwirrung oder Probleme verursachen könnte. Wenn während der Ausführung einer Prozedur, die eine Zeile in eine Tabelle eingefügt hat, eine Ausnahme ausgelöst wurde, kann eine typische Bereinigungsprozedur eine ROLLBACK-Anweisung enthalten.

Sobald die Kontrolle an einen Exception-Handler übergeben wurde, wird sie nicht mehr an die Anweisung zurückgegeben, die die Exception verursacht hat. Stattdessen wird die Steuerung unmittelbar nach dem Aufruf des verschachtelten Blocks oder der Prozedur/Funktion an die einschließende Basisblockanweisung übertragen.

Systemausnahmen

Sie kennen bereits die in PL/SQL vordefinierte Ausnahme ZERO_DIVIDE. Es gibt einige andere Systemausnahmen, die von PL/SQL oder Oracle erkannt und ausgelöst werden. Tabelle 1 enthält eine vollständigere Liste der Systemausnahmen.

In PL/SQL können Sie Benutzern Fehlerinformationen auf zwei Arten geben. Die erste Möglichkeit besteht darin, den Befehl SQLCODE zu verwenden, der einen Fehlercode zurückgibt. Dieser Code ist eine negative Zahl, normalerweise gleich der Nummer des ORA-Fehlers, der ausgegeben wird, wenn die Anwendung beendet wird, wenn die Ausnahme nicht behandelt wird. Die zweite Möglichkeit besteht darin, eine Textnachricht zurückzugeben, die den Fehler beschreibt. Wenig überraschend heißt der entsprechende Befehl SQLERRM. Sowohl SQLCODE als auch SQLERRM können in einem Ausnahmehandler verwendet werden. Hinweis: Nicht alle Systemausnahmen haben Namen.

Tisch1 . Systemausnahmen

Systemausnahme,Fehlercode

Grund für Erregung

MAUSZEIGER_ BEREITS_ OFFEN

ODER EIN-06511

Versuch, einen bereits geöffneten Cursor zu öffnen

DUP_VAL_ON_INDEX

ODER EIN-00001

Versuch, einen doppelten Wert in eine Spalte einzufügen, die einen eindeutigen Index und daher eine Eindeutigkeitsbeschränkung hat

UNGÜLTIG_ MAUSZEIGER

ORA-01001

Versuch, einen ungeöffneten Cursor abzurufen, oder Versuch, einen nicht geöffneten Cursor zu schließen

KEINE DATEN GEFUNDEN

ORA-01403

Der Versuch, SELECT INTO auszuführen, wenn SELECT null Zeilen zurückgibt (und andere Gründe, die den Rahmen dieses Buchs sprengen würden)

PROGRAMM_ ERROR

ORA-06501

Interner Fehler. Dies bedeutet normalerweise, dass Sie sich an den Oracle-Support wenden müssen

LAGER_ ERROR

ORA-06500

Das Programm verfügt nicht über genügend Systemspeicher

TIMEOUT_ON_RESOURCE

ORA-00051

Das Programm hat zu lange auf die Verfügbarkeit einer Ressource gewartet

TOO_MANY_ROWS

ORA-01422

SELECT INTO in PL/SQL hat mehr als eine Zeile zurückgegeben

WERT_ ERROR

ORA-06502

PL/SOL hat eine ungültige Datenkonvertierung oder -kürzung oder eine ungültige Dateneinschränkung festgestellt

NULL_ TEILEN

ORA-01476

Versuchen Sie, durch Null zu teilen

Alle anderen Ausnahmen und internen Fehler, die nicht durch die im Basisblock definierten Ausnahmen abgedeckt sind. Wird verwendet, wenn Sie nicht genau wissen, welche benannte Ausnahme behandelt werden soll, und alle ausgelösten Ausnahmen behandeln möchten

Lassen Sie uns nun zum allerersten Beispiel in diesem Kapitel zurückkehren und darin SQLCODE und SQLERRM verwenden. Unten ist der Quellcode des Beispiels und die Ergebnisse seines Starts (Abb. 1).

Num_a ZAHL:= 6;

Num_b ZAHL;

Num_b:= 0;

Num_a:= Num_a / Num_b;

Num_b:= 7;

dbms_output.put_line(" Wert von Num_b "|| Num_b);

AUSNAHME

WENN ZERO_DIVIDE DANN

err_num ZAHL:= SQLCODE;

err_msg VARCHAR2(512) := SQLERRM;

dbms_output.put_line("ORA-Fehlernummer " || err_num);

dbms_output.put_line("ORA-Fehlermeldung " || err_msg);

dbms_output.put_line("Wert von Num_a " || Num_a);

dbms_output.put_line("Wert von Num_b " || Num_b);

SQL> Serverausgabe einschalten

SQL> DECLARE

2 num_a ZAHL:= 6;

3 num_b ZAHL;

4 BEGINNT

5 num_b:= 0;

6 num_a:= num_a / num_b;

7 num_b:= 7;

8 dbms_output.put_line(" Wert von num_b "|| num_b);

9 AUSNAHME

10 WENN ZERO_DIVIDE

11 DANN

13 err_num ZAHL:= SQLCODE;

14 err_msg VARCHAR2(512) := SQLERRM;

15 BEGINNEN

16 dbms_output.put_line("ORA-Fehlernummer "|| err_num);

17 dbms_output.put_line("ORA-Fehlermeldung " || err_msg);

18 dbms_output.put_line("Wert von num_a " || num_a);

19 dbms_output.put_line("Wert von num_b " || num_b);

20ENDE;

21ENDE;

ORA-Fehlernummer -1476

ORA-Fehlermeldung ORA-01476: Divisor ist gleich Null

Wert von num_a 6

Wert von num_b 0

PL/SQL-Prozedur erfolgreich abgeschlossen.

Reis. ein. Verwendung von SQLCODE und SQLERRM bei der Behandlung von Systemausnahmen

Administratoren und Programmierer von Oracle-Datenbanken sehen sich bei ihrer Arbeit manchmal damit konfrontiert, dass die Datenbank anfängt zu „schimpfen“, und das oft in einer Sprache, die nicht ganz klar ist. In diesem Artikel sehen wir uns die Oracle-Fehlersprache und die Warnmeldungen an. Alle Fehler sind in große Abschnitte und Unterabschnitte gruppiert, um Benutzern zu helfen, schnell durch das Geschehen zu navigieren und Maßnahmen zur Korrektur der Situation zu ergreifen. In diesem Artikel werden wir uns mit Gruppen befassen ersten tausend Oracle-Fehler(nach Bereichen Codes von 0 bis 999) und erläutern Sie die Gründe für ihr Auftreten mit einem Vorschlag für Maßnahmen zu ihrer Behebung. Das Format des Fehlers ist „ORA-xxxxx“. Am Anfang steht das Präfix „ORA“, und dann durch den Bindestrich ein fünfstelliger Fehlercode.

Oracle-Fehlergruppen

Fehlermeldungen ORA-00000 - ORA-00099

ORA-00000-Meldungen sind normal, erfolgreicher Abschluss, d. h. kein Fehler.

Methodische Kernel-Zugriffsfehler 0001-0049

  • ORA-00001: Doppelter Schlüssel im Index
  • ORA-00017: maximale Anzahl von Aufrufen überschritten
  • ORA-00018: maximale Anzahl von Sitzungen überschritten
  • ORA-00019: Die Anzahl der Sitzungen hat die Anzahl der Lizenzen überschritten
  • ORA-00020: maximale Anzahl von Prozessen (Anzahl) überschritten
  • ORA-00021-Sitzung wird von einem anderen Prozess verwendet. Wechseln Sie nicht die Sitzung
  • ORA-00022: Ungültige Sitzungs-ID. Der Zugriff wird verweigert
  • ORA-00023: Sitzung enthält private Speicherreferenzen. Sitzung kann nicht getrennt werden
  • ORA-00024: Verbindung zu mehr als einem Prozess im Einzelbenutzermodus verboten
  • ORA-00025: [String] kann nicht platziert werden
  • ORA-00026: fehlende oder ungültige Sitzungs-ID
  • ORA-00027: Aktuelle Sitzung kann nicht zerstört werden
  • ORA-00028: Ihre Sitzung wurde zerstört
  • ORA-00029: Sitzung ist keine Benutzersitzung
  • ORA-00030: Benutzersitzung mit angegebener ID existiert nicht
  • ORA-00031: Sitzung zum Löschen markiert
  • ORA-00032: Ungültiges Kennwort zum Verschieben der Sitzung
  • ORA-00033: aktuelle Sitzung mit leerem Verschiebepasswort
  • ORA-00034: COMMIT oder ROLLBACK in der aktuellen PL/SQL-Sitzung nicht möglich
  • ORA-00035: Der LICENSE_MAX_USERS-Wert darf nicht kleiner sein als die aktuelle Anzahl von Benutzern
  • ORA-00036: maximale Anzahl von Ebenen (Wert) der SQL-Rekursion erreicht
  • ORA-00037: Sitzung kann nicht zu einer anderen Servergruppe gewechselt werden
  • ORA-00038: Sitzung kann nicht erstellt werden. Die Servergruppe gehört einem anderen Benutzer

ENQ-Fehler 0050-0080

  • ORA-00050: Betriebssystemfehler beim Abrufen der Warteschlange
  • ORA-00051: Ressourcenzeitüberschreitung
  • ORA-00052: Maximale Anzahl zurückgegebener Ressourcen überschritten
  • ORA-00053: maximale Anzahl von Warteschlangen überschritten
  • ORA-00054: Ressource ist damit beschäftigt, auf den NOWAIT-Zeiger zuzugreifen
  • ORA-00055: maximale Anzahl von DML-Sperren überschritten
  • ORA-00056: Ein gesperrtes Objekt wird mit einer DDL-Sperre versehen
  • ORA-00057: Maximale Anzahl temporärer Tabellensperren überschritten
  • ORA-00058: DB_BLOCK_SIZE muss gleich der gemounteten Datenbank sein
  • ORA-00059: DB_FILES-Parameterwert überschritten
  • ORA-00060: Beim Warten auf eine Ressource ist ein Deadlock aufgetreten
  • ORA-00061: Unterschiedliche Instanz hat unterschiedliche DML_LOCK-Einstellungen
  • ORA-00062: DML-Sperre für die gesamte Tabelle kann nicht erworben werden. Die DML_LOCKS-Einstellung ist null
  • ORA-00063: Parameterwert LOG_FILES überschritten
  • ORA-00064: Objekt kann nicht platziert werden, es ist zu groß für das Betriebssystem
  • ORA-00065: Fehler beim Initialisieren des Parameters FIXED_DATE
  • ORA-00066: LOG_FILES-Werte stimmen nicht überein
  • ORA-00067: Ungültiger Wert für String-Parameter, muss ein String sein
  • ORA-00068: Ungültiger Wert für String-Parameter, muss String sein
  • ORA-00069: Tabelle kann nicht gesperrt werden – Sperre verweigert auf [String]
  • ORA-00070: Befehl [Zeichenfolge] ungültig
  • ORA-00071: Anzahl der Prozesse muss größer als 1 sein:
  • ORA-00072: Der angegebene Prozess ist nicht aktiv
  • ORA-00073: Ungültige Anzahl von Argumenten für Befehl angegeben
  • ORA-00074: Kein Prozess definiert
  • ORA-00075: Prozess [Zeichenfolge] in aktueller Instanz nicht gefunden
  • ORA-00076: Dump [Zeichenfolge] nicht gefunden
  • ORA-00077: Der angegebene Dump ist ungültig
  • ORA-00078: Dump kann nicht nach Namen aufgelöst werden
  • ORA-00079: Variable [Wert] nicht gefunden
  • ORA-00080: Es wurde versucht, einen ungültigen Speicherbereich zu löschen
  • ORA-00081: Der angegebene Bereich ist ungültig
  • ORA-00082: Speicherbereich nicht im angegebenen Bereich
  • ORA-00083: SGA möglicherweise beschädigt
  • ORA-00084: Globaler Bereich muss PGA, SGA oder UGA sein
  • ORA-00085: Aktueller Anruf existiert nicht
  • ORA-00086: Benutzeraufruf existiert nicht
  • ORA-00087: Befehl kann auf Remote-Instanz nicht ausgeführt werden
  • ORA-00088: Befehl kann nicht vom gemeinsam genutzten Server ausgeführt werden
  • ORA-00089: Ungültige Instanznummer im ORADEBUG-Befehl
  • ORA-00090: Der ORADEBUG-Befehl konnte Speicher in einer geclusterten Datenbank nicht korrekt zuweisen
  • ORA-00091: LARGE_POOL_SIZE muss angegeben werden
  • ORA-00092: LARGE_POOL_SIZE muss größer als LARGE_POOL_MIN_ALLOC sein
  • ORA-00093: %s falsch angegeben
  • ORA-00094: %s muss einen Integer-Wert enthalten
  • ORA-00096: Ungültiger Wert [Wert] für Parameter [Wert], muss im Bereich liegen
  • ORA-00097: Oracle SQL-Funktionen werden von SQL92 nicht unterstützt:
  • ORA-00099: Die Ressource ist abgelaufen. Möglicher PDML-Deadlock

Regions- und Segmentfehler ORA-00100 - ORA-00299

  • ORA-00100: Keine Daten gefunden
  • ORA-00101: Ungültige Angabe des Systemparameters DISPATCHERS
  • ORA-00102: Das angegebene Netzwerkprotokoll kann von Dispatchern nicht verwendet werden
  • ORA-00103: Ungültiges Netzwerkprotokoll, reserviert für die Verwendung durch Dispatcher
  • ORA-00104: Deadlock erkannt, alle verfügbaren Server blockiert, Warten auf Ressource
  • ORA-00105: zu viele Dispatcher-Konfigurationen
  • ORA-00106: Die Datenbank kann nicht gestartet oder gestoppt werden, während sie mit dem Dispatcher verbunden ist
  • ORA-00107: Es kann keine Verbindung zum ORACLE-Listener-Prozess hergestellt werden
  • ORA-00108: Dispatcher kann nicht so konfiguriert werden, dass er asynchrone Verbindungen akzeptiert
  • ORA-00111: Ungültiges Attribut [Zeichenfolge]
  • ORA-00112: Attributwert ist null
  • ORA-00113: Protokollname [Zeichenfolge] zu lang
  • ORA-00114: Ungültiger Wert für Systemparameter SERVICE_NAMES
  • ORA-00115: Verbindung abgebrochen, Verbindungstabelle voll
  • ORA-00116: Der Wert von SERVICE_NAMES ist ungültig
  • ORA-00117: PROTOKOLL, ADRESSE oder BESCHREIBUNG müssen angegeben werden
  • ORA-00118: Es kann nur ein Wert für PROTOKOLL, ADRESSE oder BESCHREIBUNG angegeben werden
  • ORA-00119: Ungültiger Systemparameterwert
  • ORA-00120: Dispatcher nicht erlaubt oder nicht installiert
  • ORA-00121: SHARED_SERVERS ohne DISPATCHERS-Option definiert
  • ORA-00122: Netzwerkkonfiguration kann nicht initialisiert werden
  • ORA-00123: freigegebener Server im Leerlauf
  • ORA-00124: DISPATCHERS ohne MAX_SHARED_SERVERS angegeben
  • ORA-00125: Verbindungsreset; Missverständnis
  • ORA-00126: Verbindungsreset; Widerspruch
  • ORA-00127: Dispatcher existiert nicht
  • ORA-00128: Befehl erfordert Dispatcher-Namen
  • ORA-00129: Ungültige Empfangsadresse
  • ORA-00130: Ungültige Empfangsadresse
  • ORA-00131: Das Netzwerkprotokoll unterstützt die angegebene Registrierung nicht
  • ORA-00132: Syntaxfehler oder ungültiger Netzwerkname
  • ORA-00150: doppelte Transaktions-ID
  • ORA-00151: doppelte Transaktions-ID
  • ORA-00152: Die aktuelle Sitzung stimmt nicht mit der angeforderten Sitzung überein
  • ORA-00153: Fehler in der XA-Bibliothek
  • ORA-00154: Protokollfehler im Transaktionsmonitor
  • ORA-00155: Job kann außerhalb der globalen Transaktion nicht ausgeführt werden
  • ORA-00160: Der globale Transaktionsname überschreitet die maximale Länge
  • ORA-00161: Transaktionslänge ungültig
  • ORA-00162: Externe Datenbank-ID überschreitet Maximalwert
  • ORA-00163: Der Name der externen Datenbank überschreitet den Maximalwert
  • ORA-00164: Verteilte autonome Transaktionen zusätzlich zu portablen verteilten Transaktionen nicht erlaubt
  • ORA-00165: Tragbare verteilte Offline-Transaktionen mit Remote-Operationen nicht erlaubt
  • ORA-00200: Steuerdatei konnte nicht erstellt werden
  • ORA-00201: Steuerungsdateiversion [String] ist nicht kompatibel mit ORACLE-Version [String]
  • ORA-00202: Steuerdatei: [Zeichenfolge]
  • ORA-00203: Ungültige Steuerdatei verwendet
  • ORA-00204: Fehler beim Lesen des Datenblocks (Block [Zeichenfolge], Blöcke [Zeichenfolge]) in der Steuerdatei
  • ORA-00205: Identifizierung der Kontrolldatei fehlgeschlagen. Weitere Informationen finden Sie im Protokoll
  • ORA-00206: Fehler beim Schreiben in die Steuerdatei (Block [Zeichenfolge], Blöcke [Zeichenfolge])
  • ORA-00207: Steuerdatei nicht aus dieser Datenbank
  • ORA-00208: Anzahl der Steuerdateien überschreitet zulässigen Wert [Zeichenfolge]
  • ORA-00209: Datenblock der Steuerdatei stimmte nicht überein. Weitere Informationen finden Sie im Protokoll
  • ORA-00210: Die angegebene Steuerdatei kann nicht geöffnet werden
  • ORA-00211: Steuerdatei stimmt nicht mit vorheriger überein
  • ORA-00212: Blockgröße [String] kleiner als das erforderliche Minimum [String]
  • ORA-00213: Steuerdatei kann nicht wiederverwendet werden, Dateigröße %1: %2 erforderlich:
  • ORA-00214: Steuerungsdateiversion nicht kompatibel mit Dateiversion
  • ORA-00215: Es muss mindestens eine Steuerdatei vorhanden sein
  • ORA-00216: Die Größe der Steuerdatei kann für die Portierung von 8.0.2 nicht geändert werden:
  • ORA-00217: Größe der Steuerdatei kann nicht geändert werden, um von 9.0.1 zu migrieren:
  • ORA-00218: Die Datenblockgröße der Steuerdateien stimmt nicht mit der von DB_BLOCK_SIZE angegebenen Größe überein
  • ORA-00219: Die Größe der Steuerdatei überschreitet die festgelegte Größe
  • ORA-00220: Steuerdatei konnte nicht eingeschlossen werden, siehe Alert-Log für weitere Details
  • ORA-00221: Fehler beim Schreiben in die Steuerdatei
  • ORA-00222: Der Vorgang versucht, den Namen einer bereits gemounteten Steuerdatei zu verwenden
  • ORA-00223: Die konvertierte Datei ist ungültig oder hat die falsche Version
  • ORA-00224: Steuerdatei zur Größenänderung mit falschem Datensatztyp fehlgeschlagen
  • ORA-00225: Erwartete Größe der Steuerdatei [String] weicht von der tatsächlichen Größe [String] ab
  • ORA-00226: Vorgang nicht möglich, während alternative Steuerdatei geöffnet ist
  • ORA-00227: Beschädigter Datenblock in Steuerdatei gefunden (Block [Zeichenfolge] Blöcke [Zeichenfolge]).
  • ORA-00228: Länge des alternativen Steuerdateinamens überschreitet zulässigen Wert [Zeichenfolge]
  • ORA-00229 Vorgang verweigert. Die Snapshot-Datei wurde bereits in die Warteschlange gestellt und wird verarbeitet.
  • ORA-00230 Vorgang verweigert. Steuerdatei-Snapshot-Warteschlange nicht verfügbar
  • ORA-00231: Steuerdatei-Snapshot nicht benannt
  • ORA-00232: Steuerdatei-Snapshot existiert nicht, ist beschädigt oder nicht lesbar
  • ORA-00233: Kopie der Steuerdatei beschädigt oder nicht lesbar
  • ORA-00234: Fehler beim Identifizieren oder Öffnen des Snapshots oder beim Kopieren der Steuerdatei
  • ORA-00235: Steuerdatei für parallele Änderung gesperrt
  • ORA-00236: Snapshot abgebrochen, Fallback-Steuerdatei ausgewählt
  • ORA-00237: Snapshot-Vorgang nicht zulässig. Erstellt eine neue Steuerdatei
  • ORA-00238: Der Vorgang versucht, den Dateinamen als Datenbanknamen zu verwenden
  • ORA-00250: Archivierer läuft nicht
  • ORA-00251: LOG_ARCHIVE_DUPLEX_DEST darf nicht dasselbe Verzeichnis wie %1 sein:
  • ORA-00252: Protokoll ist leer. Eine Archivierung ist nicht möglich
  • ORA-00253: Die Länge der angegebenen Zeichenfolge überschreitet das Limit
  • ORA-00254: Fehler in der Archivsteuerleitung
  • ORA-00255: Fehler beim Archivieren der Protokolldatei
  • ORA-00256: Beim Analysieren einer Archivzeichenfolge ist ein Fehler aufgetreten
  • ORA-00257: Archivierungsfehler. Ich kann keine Verbindung herstellen, während die Ressource beschäftigt ist
  • ORA-00258: Manuelle Archivierung im NOARCHIVELOG-Protokoll muss angegeben werden
  • ORA-00259: Das Protokoll der offenen Instanz ist das aktuelle Protokoll und kann nicht archiviert werden
  • ORA-00260: Aktives Warteschlangenprotokoll [Zeichenfolge] für Thread [Zeichenfolge] kann nicht gefunden werden
  • ORA-00261: Protokoll wurde geändert oder archiviert
  • ORA-00262: Aktuelles Protokoll [Zeichenfolge] ist mit einem anderen Thread [Zeichenfolge] beschäftigt, kann nicht wechseln
  • ORA-00263: Keine Protokolle zum Archivieren für Thread [Zeichenfolge]
  • ORA-00264: Keine Wiederherstellung erforderlich
  • ORA-00265: Instanzwiederherstellung erforderlich, aber der ARCHIVELOG-Modus kann eingestellt werden
  • ORA-00266: Name des Archivprotokolls erforderlich
  • ORA-00267: Name des Archivprotokolls nicht erforderlich
  • ORA-00268: Die angegebene Protokolldatei existiert nicht
  • ORA-00269: Die angegebene Protokolldatei ist Teil des Streams [Zeichenfolge], nicht [Zeichenfolge]
  • ORA-00270: Fehler beim Erstellen des Archivprotokolls [Zeichenfolge]
  • ORA-00271: Keine Protokolle zum Archivieren
  • ORA-00272: Fehler beim Schreiben in das Archivprotokoll [Zeichenfolge]
  • ORA-00273: Wiederherstellen von Daten, die direkt ohne Protokollierung geladen wurden
  • ORA-00274: Ungültiger Wiederherstellungsparameterwert [Wert] angegeben
  • ORA-00275: Wiederherstellungsvorgang bereits gestartet
  • ORA-00276: Schlüsselwort CHANGE angegeben, aber keine Änderungsnummer angegeben
  • ORA-00277: Ungültige Wiederherstellungsoption UNTIL-Flag [String]
  • ORA-00278: Die Protokolldatei [Zeichenfolge] wird für die Wiederherstellung nicht mehr benötigt
  • ORA-00279: Protokolldateiname erforderlich
  • ORA-00280: erforderlicher Stream- und Sequenzname
  • ORA-00281: Wiederherstellung kann nicht mit Dispatcher durchgeführt werden
  • ORA-00282: UPI-Aufruf wird nicht unterstützt, verwenden Sie ALTER DATABASE RECOVER
  • ORA-00283: Wiederherstellungssitzung aufgrund von Fehlern abgebrochen
  • ORA-00284: Wiederherstellungssitzung läuft
  • ORA-00285: Ungültiger TIME-Wert
  • ORA-00286: Keine Dateien verfügbar oder gültige Datendateien
  • ORA-00287: angegebene Änderungsnummer [Zeichenfolge] nicht in Stream [Zeichenfolge] gefunden
  • ORA-00288: Verwenden Sie ALTER DATABASE RECOVER CONTINUE, um die Wiederherstellung fortzusetzen
  • ORA-00289: Variable [Wert]
  • ORA-00290: Betriebssystemfehler. Siehe Fehlermeldung unten
  • ORA-00291: PARALLEL erfordert einen numerischen Wert
  • ORA-00292: Parallele Wiederherstellungskomponente nicht installiert
  • ORA-00293: Kontrolldatei nicht synchron mit Redo-Log
  • ORA-00294: Ungültiges Format für Archivprotokoll [String] angegeben
  • ORA-00295: Ungültige Dateinummer für Daten/temp. Daten [Zeichenfolge], muss zwischen 1: und [Zeichenfolge] liegen
  • ORA-00296: WIEDERHERSTELLEN-DATENFILELISTEN-Wert überschritten
  • ORA-00297: erforderlich, um RECOVER DATAFILE LIST vor RECOVER DATAFILE START anzugeben
  • ORA-00298: fehlender oder ungültiger Attributwert
  • ORA-00299: Wiederherstellung auf Dateiebene von Datendatei %1

Datenbank-E/A-Verwaltungsfehler ORA-00300 - ORA-00399

Fehler bei der Verwaltung des Ein- und Ausstiegs aus der Oracle-Datenbank:

  • ORA-00300: Ungültige Redo-Log-Blockgröße, angegebene Größe [Zeichenfolge] überschreitet Größenbeschränkung [Zeichenfolge]
  • ORA-00301: Fehler beim Hinzufügen der Protokolldatei [Zeichenfolge] – Datei konnte nicht erstellt werden
  • ORA-00302: Limit für die Anzahl der Redo-Dateien überschritten
  • ORA-00303: Parallel Redo kann nicht ausgeführt werden
  • ORA-00304: Die angeforderte INSTANCE_NUMBER ist beschäftigt
  • ORA-00305: Protokoll [Zeichenfolge] von Thread [Zeichenfolge] ist inkonsistent und gehört zu einer anderen Datenbank
  • ORA-00306: Instanzlimit erreicht [Zeichenfolge]
  • ORA-00307: angeforderte INSTANCE_NUMBER außerhalb des zulässigen Bereichs, max [Zeichenfolge]
  • ORA-00308: Archivprotokoll [Zeichenfolge] kann nicht geöffnet werden
  • ORA-00309: Protokoll gehört zu einer anderen Datenbank
  • ORA-00310: archiviertes Protokoll enthält Sequenz [Zeichenfolge]; erforderliche Sequenz [Wert]
  • ORA-00311: Kopfzeile des Archivprotokolls kann nicht gelesen werden
  • ORA-00312: Verfügbares Protokoll [Zeichenfolge] Thread [Zeichenfolge]
  • ORA-00313: Fehler beim Öffnen der Loggroup-Datei [String] Stream [String]
  • ORA-00314: Protokoll [Zeichenfolge], erwartete Sequenz [Zeichenfolge] stimmt nicht mit [Zeichenfolge] überein
  • ORA-00315: Log [String] Stream [String], ungültiger Wert [String] im Header
  • ORA-00316: log [Zeichenfolge], Wert [Zeichenfolge] im Header zeigt an, dass dies keine Protokolldatei ist
  • ORA-00317: Die angegebene Datei [Zeichenfolge] ist keine Protokolldatei
  • ORA-00318: Protokoll [Zeichenfolge] hat die zulässige Größe überschritten [Zeichenfolge] stimmt nicht mit [Zeichenfolge] überein
  • ORA-00319: Protokoll [Zeichenfolge] hat einen falschen Flush-Status
  • ORA-00320: Dateiheader [Zeichenfolge] von Stream [Zeichenfolge] kann nicht gelesen werden
  • ORA-00321: Daten im Protokolldatei-Header [String]-Stream [String] können nicht aktualisiert werden
  • ORA-00322: Protokoll [Zeichenfolge] von Thread [Zeichenfolge] ist nicht die aktuelle Kopie
  • ORA-00323: Aktuelles Stream-Protokoll [Zeichenfolge] ist nicht verwendbar und alle anderen müssen archiviert werden
  • ORA-00324: Protokolldateiname [String] übersetzt [String] zu lang, Limit überschritten [String]
  • ORA-00325: Das Stream-Archivprotokoll [Zeichenfolge] enthält einen ungültigen Header-Wert [Zeichenfolge]
  • ORA-00326: Protokoll beginnt mit [Zeichenfolge], zuvor geänderte [Zeichenfolge] erforderlich
  • ORA-00327: Log [String] von Stream [String] hat physische Größe [String] kleiner als erforderlich [String]
  • ORA-00328: archiviertes Log endet mit [string], spätere Änderung erforderlich [string]
  • ORA-00329: Archiviertes Log beginnt mit [String], muss [String] ändern
  • ORA-00330: Archivprotokoll endet mit [String], Änderung erforderlich [String]
  • ORA-00331: Protokollversion [Zeichenfolge] ist nicht kompatibel mit ORACLE-Version [Zeichenfolge]
  • ORA-00332: Archivprotokoll sehr klein, möglicherweise nicht vollständig archiviert
  • ORA-00333: Redo-Protokoll lesen [Zeichenfolge] fehlerhafte Blöcke aus verfügbaren [Zeichenfolge]
  • ORA-00334: Archivprotokoll [Zeichenfolge]
  • ORA-00335: Protokoll verfügbar [Zeichenfolge]: Kein Protokoll mit dieser Nummer, Protokoll existiert nicht
  • ORA-00336: Blockgröße der Protokolldatei kleiner als minimale Blockgröße [Zeichenfolge]
  • ORA-00337: Die Protokolldatei [Zeichenfolge] existiert nicht und die Größe ist nicht angegeben
  • ORA-00338: Protokoll [Zeichenfolge] größer als der letzte Steuerdateiwert
  • ORA-00339: Das archivierte Protokoll enthält keine Wiederholungen
  • ORA-00340: E/A-Fehler beim Verarbeiten von Protokoll [Zeichenfolge] von Thread [Zeichenfolge]
  • ORA-00341: Protokolldatei [String] hat ungültige Header-Nummer [String]
  • ORA-00342: Archivprotokoll enthält keine SCN-Informationen [String]
  • ORA-00343: zu viele Fehler, Protokoll geschlossen
  • ORA-00344: Verfügbares Protokoll [Zeichenfolge] kann nicht neu erstellt werden
  • ORA-00345: Fehler beim Schreiben in das Redo-Protokoll, Block [Zeichenfolge] Gesamt [Zeichenfolge]
  • ORA-00346: Journal als veraltet markiert (STALE)
  • ORA-00347: Log [String] von Thread [String] hat Blockgröße [String], stimmt nicht überein, sollte [String] sein
  • ORA-00348: Redo-Recovery-Verarbeitung fehlgeschlagen, Instanz muss gestoppt werden
  • ORA-00349: Das Abrufen der Blockgröße für [Zeichenfolge] ist fehlgeschlagen
  • ORA-00350: Protokoll [Zeichenfolge] (Stream [Zeichenfolge]) der Instanz [Zeichenfolge] muss archiviert werden
  • ORA-00351: Ungültige Wiederherstellungszeit
  • ORA-00352: Alle Protokolle von Stream [Zeichenfolge] müssen archiviert werden – kann nicht zugelassen werden
  • ORA-00353: Beschädigter Protokollblock [String] Änderung [String] Zeit [String]
  • ORA-00354: Redo-Log-Block-Header beschädigt
  • ORA-00355: Änderungsnummer außerhalb der Reihenfolge
  • ORA-00356: Ungültige Änderungsbeschreibungslänge
  • ORA-00357: Zu viele Mitglieder für Protokolldatei angegeben, max [Zeichenfolge]
  • ORA-00358: zu viele Mitglieder angegeben, max [Zeichenfolge]
  • ORA-00359: Protokolldateigruppe [Zeichenfolge] existiert nicht
  • ORA-00360: Kein Mitglied der Protokolldatei: [Zeichenfolge]
  • ORA-00361: Letztes Protokoll [Zeichenfolge] kann nicht aus Gruppe [Zeichenfolge] entfernt werden
  • ORA-00362: erforderliches Mitglied ist eine gültige Protokolldatei in Gruppe [Zeichenfolge]
  • ORA-00363: Protokoll nicht archiviert
  • ORA-00364: Schreiben in neuen Protokollheader nicht möglich
  • ORA-00365: Das angegebene Protokoll ist ungültig
  • ORA-00366: Protokoll [Zeichenfolge] Stream [Zeichenfolge], Prüfsummenfehler im Datei-Header
  • ORA-00367: Prüfsummenfehler im Dateiheader
  • ORA-00368: Prüfsummenfehler im Redo-Log-Block
  • ORA-00369: Aktuelles Protokoll von Thread [Zeichenfolge] beschädigt und anderes Protokoll gelöscht
  • ORA-00371: nicht genügend Speicher im gemeinsam genutzten Pool, muss mindestens [Zeichenfolge] sein
  • ORA-00372: Datei [Zeichenfolge] kann derzeit nicht geändert werden
  • ORA-00373: Open-Log-Version [Zeichenfolge] ist nicht kompatibel mit ORACLE-Version [Zeichenfolge]
  • ORA-00374: Wert des Parameters db_block_size=[Wert] ist ungültig; muss im Bereich [Wert..Wert] zusammengesetzt sein
  • ORA-00375: Der Standardwert von db_block_size kann nicht abgerufen werden
  • ORA-00376: Datei [Zeichenfolge] kann derzeit nicht gelesen werden
  • ORA-00377: Häufiges Backup von Datei [Zeichenfolge] verursacht Deadlock bei Schreibvorgängen
  • ORA-00378: Puffer-Cache konnte nicht wie angegeben erstellt werden
  • ORA-00379: Keine freien Puffer im Puffer-Cache [Zeichenfolge] für Block [Zeichenfolge]K
  • ORA-00380: db_[value]k_cache_size kann nicht angegeben werden [value]K ist die Standardblockgröße.
  • ORA-00381: Alte und neue Optionen können nicht verwendet werden, um die Puffer-Cache-Größe anzugeben
  • ORA-00382: %s ungültige Blockgröße, gültiger Wert [str..value]
  • ORA-00383: Cache-Standardwert kann nicht auf Null reduziert werden
  • ORA-00384: Nicht genügend Arbeitsspeicher, um den Cache zu vergrößern
  • ORA-00390: Protokoll [Zeichenfolge] von Thread [Zeichenfolge] gelöscht und kann nicht das aktuelle Protokoll sein
  • ORA-00391: Alle Threads müssen von nun an auf das neue Protokollformat umstellen
  • ORA-00392: Protokoll [Zeichenfolge] von Thread [Zeichenfolge] wurde gelöscht, Vorgang nicht zulässig
  • ORA-00393: Protokoll [Zeichenfolge] von Thread [Zeichenfolge] wird benötigt, um eine Offline-Datenbank wiederherzustellen.
  • ORA-00394: Verfügbares Protokoll wird während der Archivierung wiederverwendet
  • ORA-00395: Protokoll für Datenbankklon muss umbenannt werden
  • ORA-00396: Fehler [Zeichenfolge] erfordert Rollback auf Single-Pass-Wiederherstellung
  • ORA-00397: Wiederherstellung der Instanz mit Fehler abgebrochen
  • ORA-00398: Wiederherstellung vor ordnungsgemäßer Neukonfiguration abgebrochen
  • ORA-00399: Beschädigte Beschreibung von Redo-Log-Änderungen

Datenbankinitialisierungsfehler ORA-00400 - ORA-00499

  • ORA-00400: Ungültiger Wert [String] für Parameter [String]
  • ORA-00401: Wert für Parameter [Wert] wird von dieser Version nicht unterstützt
  • ORA-00402: Datenbankänderungen von Version [Zeichenfolge] können nicht von Version [Zeichenfolge] verwendet werden
  • ORA-00403: [String] ist nicht dasselbe wie andere Instanzen von [String]
  • ORA-00404: Konvertierte Datei nicht gefunden: [Zeichenfolge]
  • ORA-00405: Kompatibilitätstyp [Zeichenfolge]
  • ORA-00406: Die COMPATIBLE-Option erfordert [string] oder höher
  • ORA-00407: Rollback-Upgrade von Version [Zeichenfolge].[Zeichenfolge] auf Version [Zeichenfolge].[Zeichenfolge] nicht zulässig
  • ORA-00408: Parameterwert [string] auf TRUE gesetzt
  • ORA-00436: Oracle ist nicht lizenziert. Wenden Sie sich an die Oracle Corporation, um Hilfe zu erhalten
  • ORA-00437: Erweiterte Oracle-Funktionen nicht lizenziert. Wenden Sie sich an die Oracle Corporation, um Hilfe zu erhalten
  • ORA-00438: Option [Zeichenfolge] nicht gesetzt
  • ORA-00439: optionales Feature nicht erlaubt: [string]
  • ORA-00443: Hintergrundprozess [Zeichenfolge] läuft nicht
  • ORA-00444: Hintergrundprozess [Zeichenfolge] beim Start fehlgeschlagen
  • ORA-00445: Der Hintergrundprozess [Zeichenfolge] wurde nicht gestartet, nachdem [Zeichenfolge] Sekunden verstrichen waren
  • ORA-00446: Hintergrundprozess unerwartet gestartet
  • ORA-00447: Kritischer Fehler im Hintergrundprozess
  • ORA-00448: Normale Beendigung eines Hintergrundprozesses
  • ORA-00449: Hintergrundprozess [Zeichenfolge] wurde abrupt mit Fehler [Zeichenfolge] beendet
  • ORA-00470: Der LGWR-Prozess wurde mit einem Fehler beendet
  • ORA-00471: Der DBWR-Prozess wurde mit einem Fehler beendet
  • ORA-00472: pmon-Prozess wurde mit einem Fehler beendet
  • ORA-00473: ARCH-Prozess wurde mit einem Fehler beendet
  • ORA-00474: smon-Prozess wurde mit einem Fehler beendet
  • ORA-00475: Der TRWR-Prozess wurde mit einem Fehler beendet
  • ORA-00476: Der RECO-Prozess wurde mit einem Fehler beendet
  • ORA-00477: SNP*-Prozess wurde mit einem Fehler beendet
  • ORA-00478: smon-Prozess wurde mit Fehler [Zeichenfolge] beendet
  • ORA-00480: LCK*-Prozess wurde mit Fehler beendet
  • ORA-00481: Der LMON-Prozess wurde mit einem Fehler beendet
  • ORA-00482: LMD*-Prozess wurde mit einem Fehler beendet
  • ORA-00483: Prozess wurde während des Herunterfahrens abnormal beendet
  • ORA-00484: LMS*-Prozess wurde mit einem Fehler beendet
  • ORA-00485: DIAG-Prozess mit Fehler beendet [Zeichenfolge]

Fehlermeldungen ORA-00500 - ORA-00599

  • ORA-00568: Maximale Anzahl von Handler-Interrupts überschritten

Disaster-Recovery-Fehler ORA-00600 - ORA-00699

  • ORA-00600: Interner Fehlercode, Argumente [Wert], [Wert], [Wert], [Wert], [Wert], [Wert], [Wert], [Wert]
  • ORA-00601: Netzsperrkonflikt
  • ORA-00602: interne Software-Ausnahme
  • ORA-00603: Die Oracle-Serversitzung wurde durch einen kritischen Fehler beendet
  • ORA-00604: Fehler auf rekursiver SQL-Ebene aufgetreten [Zeichenfolge]
  • ORA-00606: Interner Fehlercode
  • ORA-00607: Interner Fehler beim Ändern des Datenblocks

Wörterbuchfehler ORA-00700 - ORA-00799

  • ORA-00701: Das zum Starten der Datenbank erforderliche Objekt kann nicht geändert werden
  • ORA-00702: Loader-Version [Zeichenfolge] nicht kompatibel mit Version [Zeichenfolge]
  • ORA-00703: Maximale Anzahl von Cache-Sperren für Instanzzeilen überschritten
  • ORA-00704: Startvorgang wurde abnormal beendet
  • ORA-00705: Ungültiger Status während des Starts; Stoppen Sie die Instanz und starten Sie sie neu
  • ORA-00706: Fehler beim Ändern des Dateiformats [Zeichenfolge]

Allgemeine ORACLE-Fehler ORA-00800 - ORA-00899

  • ORA-0800: Pufferschreibvorgang ist nicht aktiv(Der Vorgang des Schreibens in den Puffer ist nicht aktiv).
    Weil: Das Problem hängt mit dem Versuch zusammen, ORACLE zu starten, was dazu führte, dass der Schreibvorgang in den Puffer entfernt wurde. Normalerweise wird diese Nachricht zusammen mit einer Systemfehlernachricht ausgegeben, die den Grund für den Fehler erläutert.
    Aktion: Verwenden Sie die Systemfehlermeldung (falls vorhanden), um die Fehlerursache herauszufinden. Wenn kein Systemfehler vorliegt, finden Sie eine Liste der Anforderungen im ORACLE-Installationshandbuch. Stellen Sie sicher, dass alle logischen ORACLE-Namen korrekt sind, dass im ORACLE-Verzeichnis genügend freier Speicherplatz vorhanden ist und dass genügend globale Abschnitte und Seiten vorhanden sind. Stellen Sie außerdem sicher, dass das ORACLE-Budget die erforderliche Priorität hat. Wenn die Ursache des Problems nicht identifiziert wird, sehen Sie in der entsprechenden Installationssoftware nach.
  • ORA-0801: Schreibvorgang nach dem Image ist nicht aktiv
    Weil: Diese Eigenschaft wird nicht unterstützt.
    Aktion: Bitte beziehen Sie sich auf die entsprechende Installationssoftware.
  • ORA-0802: Ungültiger Kontextbereich
    Weil
    Aktion
  • ORA-0805: opiodr: inkonsistente Nummer der Rekursionsebene
    Weil:Dies ist eine interne Fehlermeldung, die im Normalbetrieb nicht auftreten kann.
    Aktion: Eine detaillierte Beschreibung des Problems finden Sie in der entsprechenden Setup-Software.
  • ORA-0806: Before-Image-Prozess ist nicht aktiv
    Weil
    Aktion
  • ORA-0807: Bereinigungsprozess ist nicht aktiv
    Weil: Das Problem hängt mit dem Versuch zusammen, ORACLE zu starten, wodurch der Vorschauprozess abgebrochen wurde.Normalerweise wird diese Meldung zusammen mit einer Systemfehlermeldung ausgegeben, die den Grund für das Scheitern erläutert.
    Aktion: Verwenden Sie die Systemfehlermeldung (falls vorhanden), um die Fehlerursache herauszufinden. Wenn kein Systemfehler vorliegt, sehen Sie im ORACLE-Installationshandbuch für Ihr Betriebssystem nach, um die korrekte Installation zu überprüfen. Wenn die Ursache des Problems nicht identifiziert wird, sehen Sie in der entsprechenden Installationssoftware nach.
  • ORA-0809: opispf: Ungültiger Sonderfunktionscode.
    Weil:Dies ist eine interne Fehlermeldung, die im Normalbetrieb nicht auftreten kann.
    Aktion: Eine detaillierte Beschreibung des Problems finden Sie in der entsprechenden Setup-Software.
  • ORA-0810: opiomc: Kontextbereich nicht auf ursprüngliche Adresse neu zugeordnet
    Weil:Dies ist eine interne Fehlermeldung, die im Normalbetrieb nicht auftreten kann.
    Aktion: Eine detaillierte Beschreibung des Problems finden Sie in der entsprechenden Setup-Software.
  • ORA-0811: Readahead-Prozess ist nicht aktiv
    Weil: Das Problem hängt mit dem Versuch zusammen, ORACLE zu starten, wodurch der Read-Ahead-Prozess abgebrochen wurde. Normalerweise wird diese Nachricht zusammen mit einer Systemfehlernachricht ausgegeben, die den Grund für den Fehler erläutert.
    Aktion: Verwenden Sie die Systemfehlermeldung (falls vorhanden), um die Fehlerursache herauszufinden. Wenn kein Systemfehler vorliegt, sehen Sie im ORACLE-Installationshandbuch für Ihr Betriebssystem nach, um die korrekte Installation zu überprüfen. Wenn die Ursache des Problems nicht identifiziert wird, sehen Sie in der entsprechenden Installationssoftware nach.
  • ORA-0813: Behauptungsfehler (Anhang entfernt).
    Weil:Dies ist eine interne Fehlermeldung im Zusammenhang mit ORACLE SORT. Dies kann im normalen Betrieb nicht passieren.
    Aktion: Eine detaillierte Beschreibung des Problems finden Sie in der entsprechenden Setup-Software.
  • ORA-0814: ltbdrv: Unzulässiger Sperrmodus
    Weil:Dies ist eine interne Fehlermeldung, die im Normalbetrieb nicht auftreten kann.
    Aktion: Eine detaillierte Beschreibung des Problems finden Sie in der entsprechenden Setup-Software.
  • ORA-00816: Übersetzung der Fehlermeldung fehlgeschlagen
    Weil:Dies ist eine interne Fehlermeldung, die im Normalbetrieb nicht auftreten kann.
    Aktion: Eine detaillierte Beschreibung des Problems finden Sie in der entsprechenden Setup-Software.
  • ORA-0817: prsgkw: internes Fehlertoken nicht gefunden
    Weil:Dies ist eine interne Fehlermeldung, die im Normalbetrieb nicht auftreten kann.
    Aktion: Eine detaillierte Beschreibung des Problems finden Sie in der entsprechenden Setup-Software.
  • ORA-0818: opispf: osf zu groß
    Weil:Dies ist eine interne Fehlermeldung, die im Normalbetrieb nicht auftreten kann.
    Aktion: Eine detaillierte Beschreibung des Problems finden Sie in der entsprechenden Setup-Software.

Syntaxfehler ORA-00900 - ORA-00999

  • ORA-00900: Ungültige SQL-Anweisung.
    Weil: Die von Ihnen eingegebene Anweisung wurde nicht als gültiger SQL-Befehl erkannt.
    Aktion: Suchen Sie nach Tippfehlern und stellen Sie sicher, dass Schlüsselwörter für SQL-Befehle mit einem der folgenden Wörter beginnen: ALTER, AUDIT, CREATE, DELETE, DROP, GRANT, INSERT, NOAUDIT, RENAME, REVOKE, SELECT, UPDATE, LOCK, VALIDATE. Andere Befehle verursachen diesen Fehler.
  • ORA-00901: Ungültige CREATE-Befehlssyntax / Ungültiger Erstellungsbefehl.
    Weil: Für den CREATE-Befehl wurde eine ungültige CREATE-Option verwendet.
    Aktion: Auf Tippfehler prüfen, sicherstellen, dass auf den CREATE-Befehl eine der folgenden Optionen folgt: INDEX, PARTITION, SPACE DEFINITION, SYNONYM, TABLE oder VIEW.
  • ORA-00902: Ungültiger Datentyp.
    Weil: Der eingegebene Datentyp in einer CREATE- oder ALTER TABLE-Anweisung ist ungültig.
    Aktion: Auf Tippfehler prüfen, sicherstellen, dass auf jeden Spaltennamen einer der folgenden Datentypen folgt: DATA, CHAR, NUMBER, RAW, LONG oder LONG RAW.
  • ORA-00903: Ungültiger Tabellenname.
    Weil: Die eingegebenen Tabellen- oder Gruppennamen existieren nicht oder sind ungültig. Diese Meldung wird auch angezeigt, wenn im Befehl ALTER/DROP CLUSTER ein ungültiger oder nicht vorhandener Gruppenname angegeben ist.
    Aktion: Auf Tippfehler prüfen. Ein gültiger Gruppenname muss mit einem Buchstaben beginnen und darf nur Buchstaben, Ziffern und Sonderzeichen enthalten: $, # und _. Der Name darf nicht länger als 30 Zeichen sein und darf kein reserviertes Wort sein.
  • ORA-00904: Ungültiger Spaltenname.
    Weil: Der eingegebene Spaltenname fehlt oder ist ungültig.
    Aktion: Geben Sie einen gültigen Spaltennamen ein. Ein gültiger Name muss mit einem Buchstaben beginnen und darf nur Buchstaben, Zahlen und Sonderzeichen enthalten: $, # und _. Der Name darf nicht länger als 30 Zeichen sein und darf kein reserviertes Wort sein. Wenn es andere Zeichen enthält, muss es in doppelte Anführungszeichen gesetzt werden.
  • ORA-00905: fehlendes Schlüsselwort.
    Weil: Erforderliches Schlüsselwort wird weggelassen.
    Aktion: Befehlssyntax prüfen und fehlende Schlüsselwörter ergänzen.
  • ORA-00906: fehlende linke Klammer.
    Weil: Erforderliche linke Klammer weggelassen. Grundlegende Befehle (wie CREATE TABLE, CREATE CLUSTER und INSERT) erfordern eine in Klammern eingeschlossene Liste von Elementen. Klammern sind auch um Sequenzen in der WHERE-Klausel und in der UPDATE-Tabelle SET column = (SELECT ...) erforderlich.
    Aktion: Überprüfen Sie die Syntax des Befehls und fügen Sie die fehlenden Klammern ein.
  • ORA-00907: fehlende rechte Klammer
    Weil: Die linke Klammer wurde ohne die schließende rechte Klammer eingegeben, oder die vorherigen Informationen wurden in Klammern eingeschlossen. Alle Klammern müssen gepaart werden.
    Aktion: Fügen Sie eine schließende rechte Klammer ein.
  • ORA-00908: fehlendes Schlüsselwort NULL
    Weil Hinweis: In CREATE- oder ALTER TABLE-Anweisungen wurde NOT eingeführt, um anzuzeigen, dass in dieser Spalte keine Nullwerte zulässig waren, aber das Schlüsselwort NULL weggelassen wurde.
    Aktion: Wenn Sie einen Wert in dieser Spalte benötigen, ersetzen Sie das Schlüsselwort NOT durch NOT NULL.
  • ORA-00909: Ungültige Anzahl von Argumenten
    Weil: Ein Verweis auf eine eingebaute ORACLE-Funktion wurde mit der falschen Anzahl von Argumenten erstellt Alle ORACLE-Funktionen außer SYSDATE erfordern mindestens ein Argument.
    Aktion: Überprüfen Sie die Befehlssyntax und geben Sie die erforderliche Anzahl von Argumenten ein.
  • ORA-00910: Angegebene Länge zu groß für CHAR-Spalte
    Weil: Zeichenfeldgröße nicht oder falsch angegeben. Sie müssen die maximale Länge für jede Zeichenspalte angeben. Diese Länge kann Werte von 0: bis 240: annehmen.
    Aktion: Geben Sie die maximale Länge von 0 bis 240 ein: .
  • ORA-00911: Ungültiges Zeichen
    Weil: Das Sonderzeichen ist ungültig oder nur an bestimmten Stellen gültig. Wenn ein Sonderzeichen (außer $, # und _) in einem Namen verwendet wird und der Name nicht in doppelte Anführungszeichen (") eingeschlossen ist, wird diese Meldung angezeigt.
    Aktion: Entfernen Sie das ungültige Zeichen aus dem Befehl.
  • ORA-00912: Operanden-Pop-Operation ohne Operanden auf dem Stack
    Weil: Dies ist eine interne Fehlermeldung, die im normalen Betrieb nicht auftreten kann.
    Aktion: Eine detaillierte Beschreibung des Problems finden Sie in der entsprechenden Setup-Software.
  • ORA-00913: zu viele Werte
    Weil: Der Befehl geht von zwei identischen Wertesätzen aus, aber der zweite Satz enthält mehr Elemente als der erste. Beispiel: Eine Unterabfrage in einer WHERE- oder HAVING-Klausel hat möglicherweise zu viele Spalten, oder es gibt möglicherweise mehr Spalten in einer VALUES- oder SELECT-Klausel als in einer INSERT-Klausel.
    Aktion: Überprüfen Sie die Anzahl der Artikel und ändern Sie sie.
  • ORA-00914: fehlendes ADD-Schlüsselwort
    Weil: Der Befehl ALTER PARTITION wurde ohne das Schlüsselwort ADD eingegeben.
    Aktion: Überprüfen Sie die Syntax des Befehls und versuchen Sie es erneut.
  • ORA-00915: Netzwerkzugriff auf Wörterbuchtabelle derzeit nicht erlaubt
    Weil:Dies ist eine interne Fehlermeldung, die im Normalbetrieb nicht auftreten kann.
    Aktion: Eine detaillierte Beschreibung des Problems finden Sie in der entsprechenden Setup-Software.
  • ORA-00917: fehlendes Komma fehlendes Komma
    Weil: Ein Komma fehlt in einer Spaltenliste oder in einer Werteliste in einer INSERT-Anweisung oder in einer Liste der Form ((c,d),(e< f),...).
    Aktion: Überprüfen Sie die Syntax in Ihrem SQL-Statement und ergänzen Sie ggf. ein fehlendes Komma.
  • ORA-00918: Spalte mehrdeutig definiert
    Weil: Die für den Join verwendete Spalte existiert in mehr als einer Tabelle. Beim Verbinden muss jede Spalte, die in mehr als einer Tabelle vorhanden ist, den Tabellennamen enthalten. Der Spaltenname muss TABLE.COLUM oder TABLE_ALIAS.COLUMN, EMP.DEPTNO oder E.DEPTNO sein, nicht nur EMP.
    Aktion: Geben Sie den Tabellennamen in den Spaltennamen vor dem Punkt oder alternativen Tabellennamen wie oben gezeigt ein.
  • ORA-00919: Ungültige Funktio
    Weil: Funktionsähnliche Eingaben vom Typ function(argument) werden nicht als ORACLE-Funktion erkannt.
    Aktion: Eine Liste gültiger Funktionsnamen finden Sie im Handbuch.
  • ORA-00920: Ungültiger Vergleichsoperator
    Weil: Suchaufgabe mit ungültiger oder fehlender Bedingungsanweisung.
    Aktion: Geben Sie eine gültige bedingte Anweisung ein. Die folgenden relationalen Anweisungen sind erlaubt: =, !=,<>, >, >=, <, <=,IN, IS, NULL, LIKE, и BETWEEN.
  • ORA-00921: Unerwartetes Ende des SQL-Befehls
    Weil: Der SQL-Befehl ist unvollständig. Ein Teil eines gültigen Befehls wurde eingegeben, aber mindestens eine Hauptkomponente wurde ausgelassen.
    Aktion: Überprüfen Sie die Befehlssyntax und fügen Sie fehlende Komponenten ein.
  • ORA-00922: ungültige Option
    Weil: In einer Spaltendefinition oder einer Bereichsdefinition wurde eine ungültige Option deklariert.
    Aktion: Entfernen Sie die ungültige Option aus der Spalten- oder Bereichsdefinition. Eine gültige Option, die eine Spalte beschreibt, ist NOT NULL, um anzuzeigen, dass die Spalte keine NULL-Werte enthalten kann. Alles andere nach dem Datentyp, außer einem Komma oder einer schließenden Klammer, wird als ungültige Option klassifiziert. Bei der Beschreibung einer Länge für DATA oder eines LONG-Datentyps erhalten Sie diese Fehlermeldung. Nur die folgenden Optionen sind in der Bereichsdefinitionsdeklaration zulässig: INITIAL, INCREMENT und MAXEXTENTS (für DATAPAGES und INDEXPAGES) und PCTFREE (nur für DATAPAGES).
  • ORA-00923: FROM-Schlüsselwort fehlt
    Weil: In einer SELECT- oder REVOKE-Anweisung wird das FROM-Schlüsselwort entweder weggelassen, falsch platziert oder falsch geschrieben. Das FROM-Schlüsselwort muss dem ausgewählten Element in der SELECT-Anweisung oder dem ausgewählten Tabellennamen in der REVOKE-Anweisung folgen.
    Aktion: Ersetzen Sie das Wort FFROM. Die ausgewählte Liste kann selbst fehlerhaft sein. Stellen Sie sicher, dass Sie den Alias ​​in einfache Anführungszeichen setzen und ob der Alias ​​ein reserviertes Wort ist oder nicht.
  • ORA-00924: Schlüsselwort BY fehlt
    Weil: Fehlendes BY-Schlüsselwort in GROUP BY-, ORDER BY- oder CONNECTED BY-Ausdrücken. Außerdem muss im GRANT-Befehl dem Wort INDENTIFIED ein BY folgen.
    Aktion: Füge das Wort BY richtig ein.
  • ORA-00925: fehlendes INTO-Schlüsselwort
    Weil: Ein INSERT-Befehl wurde ohne das Schlüsselwort INTO verwendet.
    Aktion: Ersetzen Sie INSERT durch INSERT INTO.
  • ORA-00926: Schlüsselwort VALUES fehlt
    Weil: INSERT-Anweisung ohne das Schlüsselwort VALUES oder SELECT. Einer INSERT INTO-Anweisung muss eine VALUES- oder SELECT-Sequenz folgen.
    Aktion: Geben Sie einen VALUES-Ausdruck oder eine Sequenz nach dem INSERT INTO-Ausdruck ein.
  • ORA-00927: fehlendes Gleichheitszeichen
    Weil: Das Gleichheitszeichen fehlt an einer der folgenden Stellen: * in der SET-Anweisung des UPDATE-Befehls * nach! Ungleichheit * im PCTFREE-Ausdruck des Befehls CREATE INDEX anzuzeigen
    Aktion: Fügen Sie ein Gleichheitszeichen ein.
  • ORA-00928: fehlendes SELECT-Schlüsselwort
    Weil: Eine SELECT-Sequenz muss im CREATE VIEW-Befehl enthalten sein.
    Aktion: Fügen Sie die erforderliche SELECT-Anweisung in den CREATE VIEW-Befehl ein.
  • ORA-00929: fehlender Punkt
    Weil:Dies ist eine interne Fehlermeldung, die im Normalbetrieb nicht auftreten kann.
    Aktion: Eine detaillierte Beschreibung des Problems finden Sie in der entsprechenden Setup-Software.
  • ORA-00930: Sternchen fehlt
    Weil:Dies ist eine interne Fehlermeldung, die im Normalbetrieb nicht auftreten kann.
    Aktion: Eine detaillierte Beschreibung des Problems finden Sie in der entsprechenden Setup-Software.
  • ORA-00931: fehlende Kennung
    Weil:Dies ist eine interne Fehlermeldung, die im Normalbetrieb nicht auftreten kann.
    Aktion: Eine detaillierte Beschreibung des Problems finden Sie in der entsprechenden Setup-Software.
  • ORA-00932: inkonsistente Datentypen inkonsistenter Datentyp
    Weil: Versuch, ein Zeichenfeld zu einem Datenfeld hinzuzufügen. Daten können nur zu numerischen Feldern hinzugefügt werden.
    Aktion: Wandeln Sie ein Zeichenfeld mithilfe der Funktion TO_NUMBER in ein numerisches Feld um, bevor Sie das Datenfeld hinzufügen.
  • ORA-00933: SQL-Befehl und nicht ordnungsgemäß beendet
    Weil: SQL-Befehl mit ungültigem Ausdruck beendet. Zum Beispiel: Eine ORDER BY-Klausel kann in eine CREATE VIEW- oder INSERT-Anweisung eingefügt werden, jedoch darf eine ORDER BY-Klausel nicht verwendet werden, um eine andere Ansicht zu erstellen oder in die Hauptreihenfolge aufgenommen zu werden.
    Aktion: Überprüfen Sie die Befehlssyntax und entfernen Sie unnötige Komponenten. Sie sollten gelöschte Ausdrücke mit anderen Befehlen duplizieren können. Wenn Sie beispielsweise die Review-Zeilen bestellen möchten, gehen Sie genauso vor wie beim Anfordern eines Reviews, aber nicht wie beim Erstellen. Dieser Fehler kann auch bei Verwendung von SQL*Forms auftreten, wenn die Zeilenfortsetzung eingerückt ist. Überprüfen Sie die Offsets und entfernen Sie Leerzeichen. Wenn Sie einen I-Ausdruck mit einem Argument verwenden, müssen Sie die entsprechenden SQL-Endungen verwenden, zum Beispiel: IN(X). Der IN-Ausdruck muss mindestens zwei Argumente annehmen.
  • ORA-00934: Set-Funktion hier nicht erlaubt
    Weil: Eine der Gruppenfunktionen (wie AVG, SUM, MAX, MIN, COUNT) wurde in einer WHERE- oder GROUP BY-Klausel verwendet.
    Aktion: Entfernen Sie die Gruppenfunktion aus den WHERE- oder GROUP BY-Klauseln Sie können das gewünschte Ergebnis erhalten, indem Sie die Funktion in eine HAVING-Abfrage oder -Klausel aufnehmen.
  • ORA-00935: Set-Funktion ist zu tief verschachtelt
    Weil:Dies ist eine interne Fehlermeldung, die im Normalbetrieb nicht auftreten kann.
    Aktion: Eine detaillierte Beschreibung des Problems finden Sie in der entsprechenden Setup-Software.
  • ORA-00936: Ausdruck fehlt
    Weil: Erforderlicher Teil des Ausdrucks weggelassen. Beispielsweise wird ein SELECT-Befehl ohne Spaltenliste oder mit einem inkompatiblen Typausdruck (SAL+) eingegeben. Dies kann auch passieren, wenn reservierte Wörter wie SELECT TABLE weggelassen werden.
    Aktion: Überprüfen Sie die Befehlssyntax und geben Sie die fehlenden Befehle ein.
  • ORA-00937: keine einzelne Gruppensatzfunktion
    Weil: Sie können nicht gleichzeitig eine Gruppenfunktion (AVG, SUM, COUNT, MIN oder MAX) und einen benutzerdefinierten Spaltenausdruck in eine Abfrage aufnehmen, es sei denn, der Spaltenausdruck ist in der GROUP BY-Klausel enthalten.
    Aktion: Entfernen Sie entweder den Spaltenausdruck oder die Gruppenfunktion aus der Abfrage oder fügen Sie eine GROUP BY-Klausel hinzu, die eine Spaltenaufzählung enthält.
  • ORA-00938: nicht genügend Argumente für functio
    Weil: In der Funktion sind zu wenige Argumente deklariert.
    Aktion: Überprüfen Sie die Syntax der Funktion und fügen Sie alle erforderlichen Argumente hinzu.
  • ORA-00939: zu viele Argumente für functio
    Weil: Die Funktion hat zu viele Argumente.
    Aktion: Überprüfen Sie die Syntax der Funktion und beschreiben Sie nur die erforderlichen Argumente.
  • ORA-00940: Ungültiger ARTER-Befehl und ungültiger ALTER-Befehl
    Weil: Ungültige ALTER-Option beschrieben. Nur Abschnitte und Tabellen können sich nicht wiederholen. Ein gültiger ALTER-Befehl muss mit einer der folgenden Optionen beginnen: ALTER TABLE oder ALTER PARTITION.
    Aktion Hinweis: Überprüfen Sie die Syntax auf die korrekte Schreibweise des ALTER-Befehls.
  • ORA-00941: fehlender Clustername
    Weil: Gruppenname fehlt oder ist ungültig.
    Aktion: Beschreiben Sie den richtigen Gruppennamen. Ein gültiger Gruppenname beginnt mit einem Buchstaben, enthält nicht mehr als 30 Zeichen und besteht nur aus Buchstaben, Ziffern und den Sonderzeichen $, _ und #. Es darf kein reserviertes Wort sein. Der Name muss unmittelbar nach dem Schlüsselwort CREATE CLUSTER ausgegeben werden.
  • ORA-00942: Tabelle oder Ansicht existiert nicht
    Weil: Diese Tabelle oder Übersicht existiert nicht. oder anstelle einer Tabelle ein Ansichtsname eingegeben wird. Bestehende Benutzertabellen und -übersichten können in der TAB-Übersicht eingesehen werden.
    Aktion: Überprüfen Sie auf Tippfehler und ob Sie anstelle einer Tabelle einen Bewertungsnamen eingegeben haben. Geben Sie vorhandene Namen ein.
  • ORA-00943: Cluster existiert nicht
    Weil: Die Benutzerressource ist nicht in der Gruppe mit dem beschriebenen Namen enthalten.
    Aktion: Beschreiben Sie direkt nach dem Schlüsselwort CLUSTER den richtigen Gruppennamen.
  • ORA-00944: Unzureichende Anzahl gruppierter Spalten
    Weil: Es wurde versucht, eine Tabelle mit weniger gruppierten Spalten zu erstellen, als im CREATE CLUSTER-Befehl beschrieben. Der CLUSTER-Ausdruck des Befehls CREATE TABLE muss alle gruppierten Spalten beschreiben, die beim Erstellen der Gruppe definiert wurden. Anhand des Gruppennamens können Sie alle Gruppenspalten in der COL-Wörterbuchtabelle anzeigen.
    Aktion: Beschreiben Sie alle Spaltennamen im CREATE TABLE-Befehl.
  • ORA-00945: Die angegebene gruppierte Spalte existiert nicht
    Weil: Die im Ausdruck der CREATE TABLE-Anweisung beschriebene Spalte ist keine Spalte in dieser Tabelle.
    Aktion: Wiederholen Sie den Vorgang mit dem Namen der Tabellenspalte.
  • ORA-00946: TO-Schlüsselwort fehlt
    Weil: Der GRANT-Befehl wurde ohne das Schlüsselwort TO eingegeben, oder es wurde eine ungültige Form dieses Befehls verwendet.
    Aktion: Überprüfen Sie die Syntax der beiden Hauptformen des GRANT-Befehls (Gewähren des Datenbankzugriffs und Gewähren von Berechtigungen). Fügen Sie das TO-Schlüsselwort korrekt in den GRANT-Befehl ein.
  • ORA-00947: nicht genügend Werte
    Weil: Die SQL-Anweisung erfordert zwei identische Wertesätze, und der zweite Satz enthält weniger Werte. Dies kann auch passieren, wenn ein verschachteltes SELECT weniger Spalten in einem WHERE- oder HAVING-Ausdruck findet, wie in: WHERE(A,B) IN (SELECT C FROM..) Ein Fehler kann auch in einer INSERT-Anweisung auftreten, in der der Ausdruck VALUES or SELECT enthält nicht genügend Werte für INSERT, wie in: INSERT INTO table (A,B) VALUES("C").
    Aktion: Überprüfen Sie die Stärke jedes Satzes und machen Sie sie gleich in der Anzahl.
  • ORA-00948: ALTER CLUSTER-Anweisung wird nicht mehr unterstützt
    Weil: ALTER CLUSTER-Anweisung entfernt
    Aktion: Um Daten aus einer Tabelle hinzuzufügen, verwenden Sie den folgenden Satz von SQL-Anweisungen: CREATE TABLE<новая_таблица>WÄHLEN AUS<старая_таблица>GRUPPE<имя_группы>TROPFEN<старая_таблица>und TABELLE UMBENENNEN<новая_таблица> <старая_таблица>.
  • ORA-00949: Unzulässiger Verweis auf externe Datenbank
    Weil:Dies ist eine interne Fehlermeldung, die im Normalbetrieb nicht auftreten kann.
    Aktion: Eine detaillierte Beschreibung des Problems finden Sie in der entsprechenden Setup-Software.
  • ORA-00950: ungültige Drop-Option ungültige DROP-Option
    Weil: Nach dem DROP-Befehl gab es keine DROP-Option wie TABLE, VIEW, SYNONYM, CLUSTER oder SPACE.
    Aktion Fehlerbeseitigung: Überprüfen Sie die Befehlssyntax und verwenden Sie das richtige Format für die DROP-Option.
  • ORA-00951: Cluster nicht leer
    Weil: Der DROP-Befehl beschreibt eine nicht leere Gruppe. Eine Gruppe kann nur gelöscht werden, wenn sie keine Tabellen enthält. Entfernen Sie eine Tabelle mit dem Befehl DROP TABLE aus einer Gruppe.
    Aktion: Entfernen Sie alle Tabellen aus der Gruppe und verwenden Sie dann den Befehl DROP CLUSTER.
  • ORA-00952: fehlendes GROUP-Schlüsselwort
    Weil: Die Gruppe ist falsch implementiert.
    Aktion: Vom Benutzer ist keine Aktion erforderlich.
  • ORA-00953: fehlender Indexname
    Weil: In den Befehlen CREATE, DROP, VALIDATE INDEX ist der Indexname falsch oder fehlt.
    Aktion Fehlerbeseitigung: Geben Sie nach dem Schlüsselwort INDEX den korrekten Indexnamen ein. Wenn Sie einen Index löschen oder korrigieren möchten, überprüfen Sie den Namen anhand der Übersicht INDEXES. Wenn Sie einen neuen Index erstellen müssen, überprüfen Sie zuerst die Syntax.
  • ORA-00954: fehlendes Schlüsselwort INDENTIFIED
    Weil: Der Befehl GRANT CONNECTION wurde ohne das Schlüsselwort INDENTIFIED ausgegeben.
    Aktion: Fügen Sie das Schlüsselwort INDENTIFIED nach dem Benutzernamen ein. Das Befehlsformat lautet wie folgt: GRANT CONNECTION TO<список пользователей>INDETIFIZIERT DURCH<пароль списка>.
  • ORA-00955: Name wird bereits von vorhandenem Objekt verwendet
    Weil: Es wurde versucht, eine bereits vorhandene Tabelle, Ansicht, Gruppe oder ein Synonym zu erstellen. Jeder Benutzertabellenname muss sich von anderen Tabellennamen, Ansichten, Gruppen oder Synonymen unterscheiden, die anderen Benutzern gehören.
    Aktion: Geben Sie entweder einen eindeutigen Tabellen-, Ansichts-, Gruppen- oder Synonymnamen ein oder ändern oder löschen Sie einen vorhandenen.
  • ORA-00956: Ungültige Überwachungsoption – Ungültige Überwachungsoption
    Weil: Es gab eine ungültige Check-Option.
    Aktion: Überprüfen Sie die Syntax des Befehls und versuchen Sie es erneut mit der richtigen Option.
  • ORA-00957: Doppelter Spaltenname
    Weil: Der Spaltenname wurde zweimal in einer CREATE- oder INSERT-Anweisung deklariert. Der Name einer Spalte in einer Tabelle, Übersicht oder Gruppe muss eindeutig sein.
    Aktion Fehlerbeseitigung: Ersetzen Sie den Spaltennamen im CREATE-Befehl durch einen neuen eindeutigen Namen. Entfernen Sie im Befehl INSERT die doppelten Namen.
  • ORA-00958: fehlendes CHECK-Schlüsselwort
    Weil: Fehlendes CHECK unmittelbar nach dem WHITH-Schlüsselwort in der WITH CHECK OPTION-Klausel der CREATE VIEW-Anweisung.
    Aktion: Überprüfen Sie die Syntax der SQL-Anweisung.
  • ORA-00959: Name der Bereichsdefinition existiert nicht
    Weil: Der Befehl A DROP SPACE hat einen nicht existierenden Bereichsnamen beschrieben.
    Aktion: Vorhandene Bereichsdefinitionsnamen verwenden. Um vorhandene Namen anzuzeigen, wählen Sie SNAME aus SPACES aus.
  • ORA-00960: ungültiger INITIAL-Wert
    Weil: Im CREATE SPACE-Befehl wurde eine ungültige Startdatenseite oder Indexseitennummer angegeben. Dieser Wert muss mindestens 3 betragen.
    Aktion: Geben Sie einen INITIAL-Wert von mindestens 3 ein.
  • ORA-00961: ungültiger INCREMENT-Wert
    Weil: Für die Datenseite oder Indexseite wurde ein ungültiger Schrittzählerwert beschrieben. Der Schrittwert muss größer als 3 sein.
    Aktion: Geben Sie einen INCREMENT-Wert größer als 3 ein.
  • ORA-00962: Ungültiger PCTFREE-Wert
    Weil: In der SPACE-Definition wurde ein falscher Prozentwert für freien Speicherplatz beschrieben. Dieser Wert muss im Bereich von 1: bis 99 liegen.
    Aktion: Geben Sie einen PCTFREE-Wert zwischen 1: und 99 ein.
  • ORA-00963: ungültiger SIZE-Wert
    Weil: Im Befehl CREATE CLUSTER wurde ein ungültiger Wert für die logische Blockgröße angegeben. Die logische Blockgröße wird verwendet, um kleine Datengruppen effizient zu speichern.
    Aktion: Beschreiben Sie den zulässigen Wert der logischen Blockgröße (größer als 0).
  • ORA-00964: Ungültiger Leerzeichendefinitionsname
    Weil: Im CREATE/DROP SPACE-Befehl oder im CREATE TABLE-Befehl wurde ein ungültiger Bereichsname angegeben, oder im CREATE TABLE-Befehl wurde ein nicht vorhandener Bereichsname angegeben.
    Aktion: Geben Sie einen gültigen Bereichsnamen ein. Ein gültiger Name beginnt mit einem Buchstaben, enthält nicht mehr als 30 Zeichen und besteht nur aus Buchstaben, Ziffern und den Sonderzeichen $, _ und #. Es darf kein reserviertes Wort sein. Wenn Ihr Name richtig ist, haben Sie möglicherweise versehentlich die TEMP-Bereichsdefinition entfernt.
  • ORA-00965: Name der Bereichsdefinition existiert bereits
    Weil: Im CREATE SPACE-Befehl wurde ein vorhandener Bereichsname verwendet. Bereichsdefinitionsnamen müssen eindeutig sein.
    Aktion: Geben Sie einen eindeutigen Namen für den Bereich ein.
  • ORA-00966: fehlendes Schlüsselwort TABLE
    Weil: Ein LOCK-Befehl wurde verwendet und das Schlüsselwort TABLE wurde falsch geschrieben, ausgelassen oder an der falschen Stelle platziert. Der LOCK-Befehl muss folgendermaßen beginnen: LOCK TABLE<имя таблицы> ... .
    Aktion: Fügen Sie das Schlüsselwort TABLE an der entsprechenden Stelle ein.
  • ORA-00968: fehlendes Schlüsselwort INDEX
    Weil: Der CREATE UNIQUE-Befehl wurde verwendet und das INDEX-Schlüsselwort wurde falsch geschrieben, ausgelassen oder falsch platziert.
    Aktion: Bitte überprüfen Sie die Syntax und versuchen Sie es erneut.
  • ORA-00969: Schlüsselwort ON fehlt
    Weil: Ein GRANT- oder CREATE INDEX-Befehl wurde verwendet, und das ON-Schlüsselwort wurde falsch geschrieben, ausgelassen oder falsch platziert.
    Aktion: Fügen Sie das Schlüsselwort ON an der entsprechenden Stelle ein.
  • ORA-00970: fehlendes Schlüsselwort WITH - fehlendes Schlüsselwort WITH
    Weil: Das Schlüsselwort START wurde ohne WITH verwendet. Beide Schlüsselwörter sind in der START WITH-Klausel für die Abfrage erforderlich.
    Aktion: Ersetzen Sie das Wort START durch START WITH.
  • ORA-00971: fehlendes SET-Schlüsselwort - fehlendes SET-Schlüsselwort
    Weil: Im UPDATE-Befehl wurde das Schlüsselwort SET falsch geschrieben, ausgelassen oder falsch platziert.
    Aktion: Fügen Sie das Schlüsselwort SET nach dem Namen der zu ändernden Tabelle ein.
  • ORA-00972: Bezeichner ist zu groß
    Weil: Der Name des Datenbankobjekts ist länger als 30 Zeichen (Datenbankobjekte sind Tabellen, Gruppen, Ansichten, Indizes, Synonyme, Bereiche und Benutzernamen.
    Aktion: Kürzen Sie den Namen auf maximal 30 Zeichen.
  • ORA-00973: Ungültige Schätzung der Zeilenanzahl
    Weil: Der im CREATE INDEX-Befehl beschriebene Zeilenzählerwert ist eine Zahl kleiner als 0.
    Aktion: Beschreiben Sie einen gültigen Wert (größer als 0).
  • ORA-00974: Ungültiger Indexblock-Ladefaktor (Prozent)
    Weil: Prozentsatz des verwendeten Volumens, beschrieben im CREATE INDEX-Befehl, der Bereich gehört nicht zum Intervall von 1: bis 90 %.
    Aktion: Geben Sie einen PCTFREE-Wert zwischen 1 und 90 ein. Der Standardwert ist 10.
  • ORA-00975: Datum + Datum nicht erlaubt
    Weil: Versuch, zwei Datenfelder zusammenzufügen. Daten können nur zu Zahlenfeldern hinzugefügt werden, nicht zu anderen Daten.
    Aktion: Ein Datenfeld zu einem Zahlenfeld hinzufügen.
  • ORA-00977: Option für doppeltes Auditing - Option für doppeltes Auditing
    Weil: Die gleiche Steuerungsmöglichkeit wurde noch einmal beschrieben.
    Aktion: Redundante Kontrollbeschreibung entfernen.
  • ORA-00978: verschachtelte Set-Funktion ohne GROUP BY
    Weil: Eine Gruppenfunktion (z. B. MIN, MAX oder AVG) wurde innerhalb einer anderen Gruppenfunktion (z. B. MAX(COUNT(*))) ohne entsprechende GROUP BY-Klausel verwendet.
    Aktion: Fügen Sie entweder eine GROUP BY-Klausel hinzu oder entfernen Sie die äußere Verschachtelungsebene.
  • ORA-00979: kein GROUP BY-Expressio-Ausdruck gehört nicht zu GROUP BY
    Weil: Die GROUP BY-Klausel enthält nicht alle Ausdrücke der SELECT-Klausel. Ausdrücke aus SELECT, die nicht in Gruppenfunktionen (COUNT, SUM, AVG, MAX, MIN) enthalten sind, müssen in der GROUP BY-Klausel aufgeführt werden.
    Aktion: Alle SELECT-Ausdrücke, die keine Argumente für Gruppenfunktionen sind, in die GROUP BY-Klausel aufnehmen.
  • ORA-00980: Synonymübersetzung nicht mehr gültig
    Weil: Das von Ihnen verwendete Synonym war für eine Tabelle, Ansicht oder ein Synonym, das gelöscht oder umbenannt wurde.
    Aktion: Ersetzen Sie das Synonym durch den Namen der Tabelle, Ansicht oder des Synonyms, für das es bestimmt war. Oder generieren Sie das Synonym für die richtigen Tabellen, Sichten oder Synonyme neu.
  • ORA-00981: Tabellen- und systemweite Überwachungsoptionen können nicht kombiniert werden
    Weil: Gleichzeitig werden die Breitenoption sowohl der Tabelle als auch des Systems in derselben AUDIT-Anweisung beschrieben.
    Aktion: Korrigieren Sie den Operator.
  • ORA-00982: fehlendes Pluszeichen
    Weil: Beim Anhängen steht kein Pluszeichen (+) nach der linken Klammer. Beim Anhängen wird die linke (offene) Klammer als Beschreibung eines Anhangs interpretiert und ein Pluszeichen erwartet. Um eine Befestigung an einer Spalte zu beschreiben, muss der Spaltenbeschreibung ein in eckige Klammern (+) eingeschlossenes Pluszeichen folgen.
    Aktion: Korrigieren Sie die SQL-Syntax.
  • ORA-00984: Spalte hier nicht erlaubt
    Weil: Der Spaltenname wurde dort verwendet, wo er nicht erlaubt ist, wie z. B. in der VALUES-Klausel einer INSERT-Anweisung.
    Aktion: Überprüfen Sie die Befehlssyntax und verwenden Sie Spaltennamen nur dort, wo dies zulässig ist.
  • ORA-00985: Ungültiger Programmname
    Weil
    Aktion
  • ORA-00986: fehlende oder ungültige Gruppennamen - fehlende oder ungültige Gruppennamen
    Weil: Diese Eigenschaft ist nicht implementiert.
    Aktion: Keine Benutzeraktion erforderlich.
  • ORA-00987: fehlende oder ungültige Benutzernamen
    Weil: Der Benutzername wurde im GRANT-Befehl nicht angegeben, oder einer der angegebenen Namen ist ungültig. Gültige Benutzernamen müssen nach dem Wort TO im GRANT-Befehl erscheinen. Ein gültiger Benutzername beginnt mit einem Buchstaben, ist auf 30 Zeichen begrenzt und besteht nur aus Buchstaben, Zahlen und den Sonderzeichen $, _ und #. Es darf kein reserviertes Wort sein.
    Aktion: Beschreiben Sie einen gültigen Benutzernamen (oder eine Liste von Benutzern) nach dem TO-Schlüsselwort im GRANT-Befehl.
  • ORA-00988: fehlende oder ungültige Passwörter
    Weil: Der GRANT-Befehl enthält mehr Benutzernamen als Passwörter. Für jeden im GRANT-Befehl aufgeführten Benutzer muss ein gültiges Passwort angegeben werden.
    Aktion: Geben Sie für jeden Benutzer das richtige Passwort ein.
  • ORA-00989: Zu viele Passwörter für Benutzernamen angegeben
    Weil: Es gibt mehr Passwörter, als durch Benutzernamen im GRANT-Befehl beschrieben wurden. Für jeden im GRANT-Befehl aufgeführten Benutzer muss nur ein Passwort eingegeben werden.
    Aktion: Geben Sie die gleiche Anzahl von Benutzern und Passwörtern ein.
  • ORA-00990: fehlende oder ungültige Berechtigung
    Weil: Im Befehl für GRANT-Privilegien wurden keine Privilegien deklariert, oder eine davon ist ungültig.
    Aktion: Geben Sie ein oder mehrere gültige Privilegien ein. Die folgenden Privilegien sind erlaubt: SELECT, INSERT, DELETE, UPDATE, ALTER, INDEX, DROP, CLUSTER und ALL. Sie können mehr als ein Privileg gewähren, indem Sie sie in eine durch Kommas (,) getrennte Liste eingeben oder das Wort ALL beschreiben, um alle Privilegien zu gewähren.
  • ORA-00991: Nicht erkennbares Format für GRANT-Befehl
    Weil: Eine ungültige Form des GRANT-Befehls wurde eingegeben.
    Aktion: Befehlssyntax prüfen Es gibt zwei Arten von GRANT-Befehlen. Der erste Typ wird verwendet, um den Benutzerzugriff auf die Datenbank zu definieren und sollte das folgende Format haben: GRANT CONNECT/RESOURCE/DBA TO<имя пользователя>IDENTIFIZIERT DURCH<пароль>. Mindestens eines der Schlüsselwörter CONNECT, RESOURCE oder DBA muss vorhanden sein. Der zweite Typ wird verwendet, um Berechtigungen für Datenbankobjekte zu erteilen, und hat das Format: GRANT<список привелегий>AN<обзор/ таблица>ZU< индентификатор пользователя>/ÖFFENTLICH ZUGÄNGLICH.
  • ORA-00992: Unerkennbares Format für REVOKE-Befehl
    Weil: Eine ungültige Form des REVOKE-Befehls wurde eingegeben.
    Aktion: Überprüfen Sie die Syntax des Befehls und versuchen Sie es erneut.
  • ORA-00993: fehlendes GRANT-Schlüsselwort
    Weil: Die WITH-Option wurde am Ende eines GRANT-Befehls ohne eine GRANT-Option deklariert. Um einem Benutzer Privilegien und die Erlaubnis, sie anderen Benutzern zu erteilen, zu erteilen, verwenden Sie die WITH GRANT OPTIO-Option am Ende eines GRANT-Befehls.
    Aktion: Ersetzen Sie das Schlüsselwort WITH durch WITH GRANT OPTION.
  • ORA-00994: Schlüsselwort OPTION fehlt – Schlüsselwort OPTIO fehlt
    Weil: Die WITH GRANT-Option wurde am Ende des GRANT-Befehls ohne das Wort OPTION verwendet.
    Aktion: Ändern Sie den Schlüssel von WITH GRANT in WITH GRANT OPTION.
  • ORA-00995: fehlender oder ungültiger Synonymbezeichner
    Weil: In einem CREATE- oder DROP SYNONYM-Befehl wurde ein Synonymname entweder weggelassen oder ist ungültig.
    Aktion: Auf Tippfehler und Befehlssyntax prüfen. Auf den Schlüssel SYNONYM muss in beiden Befehlen unmittelbar ein gültiger Synonymname folgen. Ein gültiger Synonymname beginnt mit einem Buchstaben, ist auf 30 Zeichen begrenzt und besteht nur aus Buchstaben, Zahlen und den Sonderzeichen $, _ und #. Es darf kein reserviertes Wort sein.
  • ORA-00996: Der Verkettungsoperator ist ¦¦ nicht ¦ - Der Verkettungsoperator ist ||, nicht |
    Weil: Der einzelne Strich (|) wurde als Versuch verstanden, eine Verkettung zu beschreiben, aber der Verkettungsoperator besteht aus zwei Strichen (||).
    Aktion: Geben Sie einen doppelten Strich für die Verkettungsoperation ein oder entfernen Sie einen einzelnen Strich, wenn die Verkettung nicht benötigt wird.
  • ORA-00997: Unzulässige Verwendung des langen Datentyps
    Weil: Sie haben den Datentyp LONG, der zum Speichern von Daten mit mehr als 240 Zeichen verwendet wird, in einer Funktion oder in WHERE-, GROUP BY-, ORDER BY-Klauseln verwendet. Der LONG-Wert kann nur in einer SELECT-Klausel verwendet werden.
    Aktion: Entfernen Sie dieses Feld aus der Funktion oder dem Angebot.
  • ORA-00998: Dieser Ausdruck muss mit einer Spaltenbezeichnung benannt werden
    Weil: Eine Funktion oder ein Ausdruck wurde im CREATE VIEW-Befehl verwendet, aber der entsprechende Spaltenname wurde nicht deklariert. Wenn ein Ausdruck oder eine Funktion für eine Ansicht verwendet wird, müssen alle Spalten- und Ansichtsnamen korrekt im CREATE VIEW-Befehl aufgeführt werden.
    Aktion: Geben Sie alle Review-Spaltennamen in Klammern nach dem Review-Namen ein.
  • ORA-00999: Ungültiger Ansichtsname.
    Weil: Fehlender oder ungültiger Ansichtsname im Befehl CREATE VIEW.
    Aktion: Geben Sie unmittelbar nach CREATE VIEW einen gültigen Ansichtsnamen ein. Ein gültiger Browsername beginnt mit einem Buchstaben, ist auf 30 Zeichen begrenzt und besteht nur aus Buchstaben, Zahlen und den Sonderzeichen $,_ und #. Es darf kein reserviertes Wort sein.