Съгласно 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