Gemäß OERR, ORA-00911 :ungültiges Zeichen
Ursache :Bezeichner dürfen mit keinem anderen ASCII-Zeichen als Buchstaben und Ziffern beginnen. Nach dem ersten Zeichen sind auch $#_ erlaubt. In doppelte Anführungszeichen eingeschlossene Bezeichner können jedes andere Zeichen als doppelte Anführungszeichen enthalten. Alternative Anführungszeichen (q’#…#’) dürfen keine Leerzeichen, Tabulatoren oder Wagenrückläufe als Trennzeichen verwenden. Informationen zu allen anderen Kontexten finden Sie im SQL-Sprachreferenzhandbuch.
Aktion :Keine
ORA-00911 Ausnahme ist sehr häufig und tritt normalerweise bei häufigen Syntaxfehlern auf. Einige der häufigsten Ursachen und Lösungen sind unten aufgeführt
Überprüfen Sie die Liste, die für den ORA-00911-Fehler ausgeführt werden soll
1 . Manchmal, wenn Sie die SQL aus einem anderen Editor kopieren, werden möglicherweise nicht druckbare Zeichen/Sonderzeichen hinzugefügt (normalerweise Akut anstelle von Anführungszeichen)
SQL> select * from APPS.FND_PROFILE_OPTION_NAME where profile_name like 'USER%`; select * from APPS.FND_PROFILE_OPTION_NAME where profile_name like 'USER%`; * ERROR at line 1: ORA-00911: invalid character
Der richtige Weg ist, diese Zeichen zu entfernen und es erneut zu versuchen
SQL> select * from APPS.FND_PROFILE_OPTION_NAME where profile_name like 'USER%';
2. Dieser Fehler tritt auf, wenn ein Sonderzeichen in einer SQL-WHERE-Klausel verwendet wird und der Wert nicht in einfache Anführungszeichen eingeschlossen ist.
SQL> select * from APPS.FND_PROFILE_OPTION_NAME where profile_name like USER%; select * from APPS.FND_PROFILE_OPTION_NAME where profile_name like USER%; * ERROR at line 1: ORA-00911: invalid character
Die richtige Abfrage ist
SQL> select * from APPS.FND_PROFILE_OPTION_NAME where profile_name like 'USER%';
3 . wenn ein zusätzliches Semikolon (;) hinzugefügt wird, um die Abfrage zu beenden
SQL> select * from APPS.FND_PROFILE_OPTION_NAME where profile_name like 'USER%';; select * from APPS.FND_PROFILE_OPTION_NAME where profile_name like 'USER%'; * ERROR at line 1: ORA-00911: invalid character
Oracle hat diese 11g und höher verbessert
select CHECKPOINT_CHANGE# from v$database;; select CHECKPOINT_CHANGE# from v$database; * ERROR at line 1: ORA-00933: SQL command not properly ended
Der korrekte Weg ist die Verwendung eines einzelnen Semikolons
SQL> select * from APPS.FND_PROFILE_OPTION_NAME where profile_name like 'USER%'; SQL> select CHECKPOINT_CHANGE# from v$database;
4 . wenn ein Semikolon (;) hinzugefügt wird, um die Abfrage in der sofortigen Ausführung von pl/sql
zu beendenSQL> begin execute immediate 'select * from v$database;'; end; / begin * ERROR at line 1: ORA-00911: invalid character ORA-06512: at line 2
Oracle hat diese 11g und höher verbessert
begin execute immediate 'select * from v$database;'; end; / begin * ERROR at line 1: ORA-00933: SQL command not properly ended ORA-06512: at line 2
Der richtige Weg ist
begin execute immediate 'select * from v$database'; end; /
5. es tritt auch auf, wenn Sie versuchen, ein Sonderzeichen in einer SQL-Anweisung zu verwenden. Wenn ein anderes Sonderzeichen als $, _ und # im Namen einer Spalte oder Oracle-Tabelle verwendet wird, muss der Name in doppelte Anführungszeichen gesetzt werden.
create table example (j% number); create table example (j% number) * ERROR at line 1: ORA-00911: invalid character
Richtiger Weg
Wir sollten sie in doppelte Anführungszeichen „“
setzenSQL> create table example ("j%" number); Table created.
6. Wenn ein Semikolon (;) hinzugefügt wird, um die Abfrage zu beenden, die von einer Programmiersprache wie .net oder Java ausgeführt wird
Ich hoffe, Ihnen gefällt dieser Inhalt zur Lösung des Problems ORA-00911:Ungültiges Zeichen in der Oracle-Datenbank. Bitte geben Sie Feedback, um diesen Beitrag zu verbessern und mehr Inhalte hinzuzufügen
Verwandte Artikel
ORA-00936 fehlender Ausdruck
ORA-01017:Ungültiger Benutzername/Passwort
ora-29913:Fehler beim Ausführen von odciexttableopen-Callout
ORA-00001 Eindeutigkeitsbeschränkung verletzt
ORA-00257:Archivierungsfehler. Nur intern verbinden, bis freigegeben.
ORA-03113:Dateiende auf Kommunikationskanal
Oracle-Dokumentation