sql >> Database teknologi >  >> RDS >> Oracle

ORA-00911:ugyldigt tegn

I henhold til OERR,ORA-00911 :ugyldigt tegn

Årsag :identifikatorer må ikke starte med andre ASCII-tegn end bogstaver og tal. $#_ er også tilladt efter det første tegn. Identifikatorer omgivet af dobbelte anførselstegn kan indeholde et hvilket som helst andet tegn end et dobbelt anførselstegn. Alternative anførselstegn (q'#...#') kan ikke bruge mellemrum, tabulatorer eller vognretur som skilletegn. For alle andre sammenhænge, ​​se SQL Language Reference Manual.
Handling :Ingen

ORA-00911 undtagelse er meget almindelig og forekommer normalt for almindelige syntaksfejl. Nogle af de almindelige årsager og løsningen er angivet nedenfor

Tjek listen for at køre for ORA-00911-fejl

1 . Nogle gange, når du kopierer sql fra en anden editor, kan den tilføjes ikke-udskrivbare/specielle tegn (normalt Akut i stedet for citat)

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

Den korrekte måde er at fjerne disse tegn og prøve igen

SQL> select * from APPS.FND_PROFILE_OPTION_NAME where profile_name like 'USER%';

2. Denne fejl opstår, når der bruges et specialtegn i en SQL WHERE-sætning, og værdien ikke er omgivet af enkelte anførselstegn.

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 

Den korrekte forespørgsel er

SQL> select * from APPS.FND_PROFILE_OPTION_NAME where profile_name like 'USER%';

3 . når et ekstra semikolon (;) tilføjes for at afslutte forespørgslen

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 har forbedret denne 11g og derover

select CHECKPOINT_CHANGE# from v$database;;

select CHECKPOINT_CHANGE# from v$database;
*
ERROR at line 1:
ORA-00933: SQL command not properly ended 

Den korrekte måde er at bruge enkelt semikolon

SQL> select * from APPS.FND_PROFILE_OPTION_NAME where profile_name like 'USER%';
SQL> select CHECKPOINT_CHANGE# from v$database;

4 . når semikolon (;) tilføjes for at afslutte forespørgslen i execute umiddelbart af 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 har forbedret denne 11g og derover

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 

Den korrekte måde er

begin
execute immediate 'select * from v$database';
end;
/

5. det forekommer også, når du forsøger at bruge et specialtegn i en SQL-sætning. Hvis et andet specialtegn end $, _ og # bruges i navnet på en kolonne eller orakeltabel, skal navnet være omgivet af dobbelte anførselstegn.

create table example (j% number);  

create table example (j% number) 
*
ERROR at line 1: 
ORA-00911: invalid character 

Korrekt måde

Vi bør sætte dem i dobbelte anførselstegn ""

 SQL> create table example ("j%" number);  
Table created.  

6. når semikolon (;) tilføjes for at afslutte forespørgslen, der udføres fra programmeringssprog som .net eller java

Håber du kan lide dette indhold for at løse ORA-00911:ugyldig karakter i oracle-databasen. Giv venligst feedback for at forbedre og inkludere flere ting i dette indlæg

Relaterede artikler
ORA-00936 mangler udtryk

ORA-01017:ugyldigt brugernavn/adgangskode

ora-29913:fejl under udførelse af odciexttableopen callout

ORA-00001 unik begrænsning overtrådt

ORA-00257:arkiveringsfejl. Tilslut kun internt, indtil frigivet.

ORA-03113:slutningen af ​​filen på kommunikationskanalen

Oracle-dokumentation


  1. Oracle.DataAccess.Client-afhængigheder

  2. Kan ikke slette eller opdatere en overordnet række:en fremmednøglebegrænsning mislykkes

  3. Indsæt opdatering udløser, hvordan man bestemmer, om indsætte eller opdatere

  4. PyInstaller, spec fil, ImportError:Intet modul med navnet 'blah'