Oracle
 sql >> Baza danych >  >> RDS >> Oracle

ORA-00911:nieprawidłowy znak

Zgodnie z OERR,ORA-00911 :nieprawidłowy znak

Przyczyna :identyfikatory nie mogą zaczynać się od żadnego znaku ASCII innego niż litery i cyfry. $#_ są również dozwolone po pierwszym znaku. Identyfikatory ujęte w cudzysłowy mogą zawierać dowolny znak inny niż podwójny cudzysłów. Alternatywne cudzysłowy (q’#…#’) nie mogą używać spacji, tabulatorów ani znaków powrotu karetki jako ograniczników. W przypadku wszystkich innych kontekstów zapoznaj się z podręcznikiem SQL Language Reference Manual.
Działanie :Brak

ORA-00911 wyjątek jest bardzo powszechny i ​​zwykle występuje w przypadku typowych błędów składniowych. Niektóre z najczęstszych przyczyn i rozwiązania są podane poniżej

Lista kontrolna do uruchomienia w przypadku błędu ORA-00911

1 . Czasami, gdy kopiujesz sql z innego edytora, może zostać dodany niedrukowalny/specjalny znak (zwykle Ostry zamiast cytatu)

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

Prawidłowym sposobem jest usunięcie tych znaków i spróbować ponownie

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

2. Ten błąd występuje, gdy w klauzuli SQL WHERE użyto znaku specjalnego, a wartość nie jest ujęta w pojedyncze cudzysłowy.

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 

Prawidłowe zapytanie to

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

3 . po dodaniu dodatkowego średnika (;) w celu zakończenia zapytania

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 ulepszyło te 11g i wyższe

select CHECKPOINT_CHANGE# from v$database;;

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

Prawidłowy sposób to użycie pojedynczego średnika

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

4 . po dodaniu średnika (;) w celu zakończenia zapytania w natychmiastowym wykonaniu 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 ulepszyło te 11g i wyższe

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 

Prawidłowy sposób to

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

5. występuje również podczas próby użycia znaku specjalnego w instrukcji SQL. Jeśli w nazwie kolumny lub tabeli Oracle użyto znaku specjalnego innego niż $, _ i #, nazwa musi być ujęta w podwójne cudzysłowy.

create table example (j% number);  

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

Właściwy sposób

Powinniśmy ująć je w podwójnych cudzysłowach „”

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

6. po dodaniu średnika (;) w celu zakończenia zapytania wykonywanego z języka programowania takiego jak .net lub java

Mam nadzieję, że podoba Ci się ta treść, aby rozwiązać problem z ORA-00911:nieprawidłowy znak w bazie danych Oracle. Prześlij opinię, aby poprawić i umieścić więcej rzeczy w tym poście

Powiązane artykuły
ORA-00936 brak wyrażenia

ORA-01017:nieprawidłowa nazwa użytkownika/hasło

ora-29913:błąd podczas wykonywania objaśnienia odciexttableopen

Naruszono ograniczenie unikatowe ORA-00001

ORA-00257:błąd archiwizatora. Połącz tylko wewnętrznie, aż do zwolnienia.

ORA-03113:koniec pliku w kanale komunikacji

Dokumentacja 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. interwał formatu z to_char

  2. Odwoływanie się do typów zdefiniowanych przez użytkownika Oracle przez DBLINK?

  3. Jak uciec przed słowem zastrzeżonym w Oracle?

  4. ORA-00257:błąd archiwizatora. Połącz tylko wewnętrznie, aż do zwolnienia.

  5. Jak poznać id przed zapisaniem obiektu w jpa?