Volgens OERR,ORA-00911 :ongeldig teken
Oorzaak :identifiers mogen niet beginnen met een ander ASCII-teken dan letters en cijfers. $#_ zijn ook toegestaan na het eerste teken. Identifiers tussen dubbele aanhalingstekens mogen elk ander teken dan dubbele aanhalingstekens bevatten. Alternatieve aanhalingstekens (q’#…#’) mogen geen spaties, tabs of regelteruglooptekens als scheidingstekens gebruiken. Raadpleeg voor alle andere contexten de SQL Language Reference Manual.
Actie :Geen
ORA-00911 uitzondering is heel gebruikelijk en treedt meestal op voor veelvoorkomende syntaxisfouten. Enkele veelvoorkomende oorzaken en oplossingen worden hieronder gegeven
Checklijst om uit te voeren voor ORA-00911-fout
1 . Soms, wanneer u de sql uit een andere editor kopieert, kan het niet-afdrukbaar/speciaal teken worden toegevoegd (meestal Acuut in plaats van aanhalingsteken)
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
De juiste manier is om die tekens te verwijderen en het opnieuw te proberen
SQL> select * from APPS.FND_PROFILE_OPTION_NAME where profile_name like 'USER%';
2. Deze fout treedt op wanneer een speciaal teken wordt gebruikt in een SQL WHERE-component en de waarde niet tussen enkele aanhalingstekens staat.
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
De juiste vraag is
SQL> select * from APPS.FND_PROFILE_OPTION_NAME where profile_name like 'USER%';
3 . wanneer een extra puntkomma (;) wordt toegevoegd om de zoekopdracht te beëindigen
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 heeft deze 11g en hoger verbeterd
select CHECKPOINT_CHANGE# from v$database;; select CHECKPOINT_CHANGE# from v$database; * ERROR at line 1: ORA-00933: SQL command not properly ended
De juiste manier is om een enkele puntkomma te gebruiken
SQL> select * from APPS.FND_PROFILE_OPTION_NAME where profile_name like 'USER%'; SQL> select CHECKPOINT_CHANGE# from v$database;
4 . wanneer puntkomma (;) wordt toegevoegd om de zoekopdracht te beëindigen in execute onmiddellijk van pl/sql
SQL> begin execute immediate 'select * from v$database;'; end; / begin * ERROR at line 1: ORA-00911: invalid character ORA-06512: at line 2
Oracle heeft deze 11g en hoger verbeterd
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
De juiste manier is
begin execute immediate 'select * from v$database'; end; /
5. het komt ook voor wanneer u een speciaal teken in een SQL-instructie probeert te gebruiken. Als een speciaal teken anders dan $, _ en # wordt gebruikt in de naam van een kolom of orakeltabel, moet de naam tussen dubbele aanhalingstekens staan.
create table example (j% number); create table example (j% number) * ERROR at line 1: ORA-00911: invalid character
Correcte manier
We moeten ze tussen dubbele aanhalingstekens plaatsen ""
SQL> create table example ("j%" number); Table created.
6. wanneer puntkomma (;) wordt toegevoegd om de query te beëindigen die wordt uitgevoerd vanuit programmeertaal zoals .net of java
Ik hoop dat je deze inhoud leuk vindt om de ORA-00911:ongeldig teken in de Oracle-database op te lossen. Geef alsjeblieft feedback om te verbeteren en meer dingen in dit bericht op te nemen
Gerelateerde artikelen
ORA-00936 ontbrekende uitdrukking
ORA-01017:ongeldige gebruikersnaam/wachtwoord
ora-29913:fout bij het uitvoeren van odciexttableopen callout
ORA-00001 unieke beperking geschonden
ORA-00257:archiverfout. Alleen intern aansluiten, totdat het wordt vrijgemaakt.
ORA-03113:einde bestand op communicatiekanaal
Oracle-documentatie