Oracle
 sql >> база данни >  >> RDS >> Oracle

ORA-00911:невалиден знак

Съгласно OERR,ORA-00911 :невалиден знак

Причина :идентификаторите не могат да започват с ASCII символ, различен от букви и цифри. $#_ също са разрешени след първия знак. Идентификаторите, оградени с двойни кавички, могат да съдържат всеки знак, различен от двойни кавички. Алтернативните кавички (q’#…#’) не могат да използват интервали, табулатори или връщания на карета като разделители. За всички останали контексти вижте справочното ръководство за SQL език.
Действие :Няма

ORA-00911 изключението е много често и обикновено се появява за често срещани синтактични грешки. Някои от често срещаните причини и решение са дадени по-долу

Проверете списъка за стартиране за грешка ORA-00911

1 . Понякога, когато копирате sql от друг редактор, може да се добави непечатаем/специален символ (обикновено Acute вместо цитат)

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

Правилният начин е да премахнете тези знаци и да опитате отново

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

2. Тази грешка възниква, когато в SQL клауза WHERE се използва специален символ и стойността не е затворена в единични кавички.

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 

Правилната заявка е

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

3 . когато се добави допълнителна точка и запетая (;) за край на заявката

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 подобри тези 11g и повече

select CHECKPOINT_CHANGE# from v$database;;

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

Правилният начин е да използвате единична точка и запетая

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

4 . когато се добави точка и запетая (;) за завършване на заявката при изпълнение незабавно на 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 подобри тези 11g и повече

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 

Правилният начин е

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

5. възниква и когато се опитате да използвате специален символ в SQL израз. Ако в името на колона или таблица на оракул се използва специален символ, различен от $, _ и #, името трябва да бъде затворено в двойни кавички.

create table example (j% number);  

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

Правилен начин

Трябва да ги поставим в двойни кавички “”

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

6. когато се добави точка и запетая (;), за да завърши заявката, изпълняваща се от език за програмиране като .net или java

Надяваме се това съдържание да ви хареса, за да разрешите ORA-00911:невалиден знак в базата данни на oracle. Моля, предоставете обратната връзка, за да подобрите и включите повече неща в тази публикация

Сродни статии
ORA-00936 липсва израз

ORA-01017:невалидно потребителско име/парола

ora-29913:грешка при изпълнение на извикване za odciexttableopen

Уникалното ограничение ORA-00001 е нарушено

ORA-00257:грешка на архиватора. Свързване само вътрешно, докато не бъде освободено.

ORA-03113:край на файла на комуникационен канал

Документация на Oracle


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Връщане на краткото име на ден от дата в Oracle

  2. какъв jdbc jar да използвате с oracle 11g &jdk 1.6 и как да се свържете със самия db

  3. System.Data.OracleClient изисква клиентски софтуер на Oracle версия 8.1.7

  4. Можете ли да използвате Microsoft Entity Framework с Oracle?

  5. Oracle - Защо водещата нула на число изчезва при преобразуването му в TO_CHAR