Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

ORA-00911:ký tự không hợp lệ

Theo OERR, ORA-00911 :ký tự không hợp lệ

Nguyên nhân :số nhận dạng không được bắt đầu bằng bất kỳ ký tự ASCII nào ngoài các chữ cái và số. $ # _ cũng được cho phép sau ký tự đầu tiên. Các số nhận dạng được bao bởi dấu ngoặc kép có thể chứa bất kỳ ký tự nào khác ngoài dấu ngoặc kép. Dấu ngoặc kép thay thế (q ’#… #’) không được sử dụng dấu cách, tab hoặc dấu xuống dòng làm dấu phân cách. Đối với tất cả các ngữ cảnh khác, hãy tham khảo Sổ tay Tham khảo Ngôn ngữ SQL.
Hành động :Không có

ORA-00911 ngoại lệ là rất phổ biến và thường xảy ra đối với các lỗi cú pháp phổ biến. Một số nguyên nhân phổ biến và cách giải quyết được đưa ra dưới đây

Danh sách kiểm tra để chạy lỗi ORA-00911

1 . Đôi khi khi bạn sao chép sql từ một trình soạn thảo khác, nó có thể không in được / ký tự đặc biệt được thêm vào (thường là Acute thay vì trích dẫn)

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

Cách đúng là xóa các ký tự đó và thử lại

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

2. Lỗi này xảy ra khi một ký tự đặc biệt được sử dụng trong mệnh đề WHERE của SQL và giá trị không được đặt trong các dấu ngoặc kép.

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 

Truy vấn đúng là

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

3 . khi thêm dấu chấm phẩy (;) để kết thúc truy vấn

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 đã cải thiện điều này 11g trở lên

select CHECKPOINT_CHANGE# from v$database;;

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

Cách đúng là sử dụng dấu chấm phẩy đơn

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

4 . khi dấu chấm phẩy (;) được thêm vào để kết thúc truy vấn trong quá trình thực thi ngay lập tức của 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 đã cải thiện điều này 11g trở lên

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 

Cách đúng là

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

5. nó cũng xảy ra khi bạn cố gắng sử dụng một ký tự đặc biệt trong một câu lệnh SQL. Nếu một ký tự đặc biệt khác với $, _ và # được sử dụng trong tên của một cột hoặc bảng tiên tri, thì tên đó phải được đặt trong dấu ngoặc kép.

create table example (j% number);  

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

Cách đúng

Chúng ta nên đặt chúng trong dấu ngoặc kép “”

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

6. khi dấu chấm phẩy (;) được thêm vào để kết thúc truy vấn thực thi từ ngôn ngữ lập trình như .net hoặc java

Hy vọng bạn thích nội dung này để giải quyết ORA-00911:ký tự không hợp lệ trong cơ sở dữ liệu oracle. Vui lòng cung cấp phản hồi để cải thiện và đưa thêm nội dung vào bài đăng này

Các bài viết có liên quan Biểu thức thiếu
ORA-00936

ORA-01017:tên người dùng / mật khẩu không hợp lệ

ora-29913:lỗi khi thực thi chú thích odciexttableopen

Ràng buộc duy nhất ORA-00001 bị vi phạm

ORA-00257:lỗi trình lưu trữ. Chỉ kết nối nội bộ, cho đến khi được giải phóng.

ORA-03113:phần cuối của tệp trên kênh liên lạc

Tài liệu 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. Làm thế nào để chuyển Danh sách từ java sang Thủ tục Oracle?

  2. Mất điện với EMCLI

  3. Cách sử dụng kiểu BOOLEAN trong câu lệnh SELECT

  4. Trình tối ưu hóa trong Cơ sở dữ liệu Oracle 19c

  5. Chuyển VARCHAR2 thành Số