sql >> Database >  >> RDS >> Oracle

ORA-00911:ongeldig teken

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


  1. Is er een manier om het rijnummer in Mysql te krijgen, zoals het rijnummer in orakel?

  2. Toegang tot klassenmodule en wrapperklassen

  3. Oracle-trigger na invoegen of verwijderen

  4. Verbinding maken met een MySQL-database in .NET