Oracle
 sql >> Datenbank >  >> RDS >> Oracle

ORA-00911:Ungültiges Zeichen

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 beenden
SQL> 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 „“

setzen
 SQL> 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