Dấu ngoặc kép được sử dụng để biểu thị mã định danh được trích dẫn , tức là tên đối tượng không chỉ chứa các ký tự chữ và số, $
và #
. Ngoài ra, bạn nên không sử dụng số nhận dạng được trích dẫn. Đây là lý do gây ra lỗi ORA-00984 ban đầu của bạn. Oracle đang giả định rằng "tes"
là một cột, không phải là một chuỗi và bạn không thể sử dụng tên cột trong mệnh đề VALUES của câu lệnh INSERT, như được giải thích trong thông báo lỗi
.
Để chèn chuỗi "tes"
vào một bảng, bạn cần đảm bảo rằng nó được trích dẫn đúng
:
Bất kỳ ký tự nào cũng có thể là một phần của chuỗi, vì vậy để chèn một dấu ngoặc kép vào bảng, bạn cần đặt nó trong dấu ngoặc kép.
insert into users (id, name, username)
values (null, '"tes"', '"hello"');
Đây là SQL Fiddle để chứng minh.
Một điều bổ sung cần lưu ý. Bạn tuyên bố rằng truy vấn này được tạo tự động, có nghĩa là bạn có thể dễ bị tấn công bởi SQL injection. Tôi thực sự khuyên bạn nên đọc về các biến liên kết trong Bảo vệ chống lại Chèn SQL .