Khắc phục lỗi "ORA-00907: missing right parenthesis" trong Oracle
Lỗi "ORA-00907: missing right parenthesis" là một dạng lỗi cú pháp. thường gặp khi bạn tự viết mã script thủ công.
Nguyên nhân
- Lỗi này xuất hiện khi có dấu ngoặc đơn bên trái mà không thấy dấu ngoặc đơn bên phải tương ứng hoặc có vấn đề trong thông số bổ sung ở bên trong hai dấu ngoặc đó.
- Mình gặp lỗi này khi mình khai báo USRDESC với kiểu dữ liệu nvarchar2(300 char). Mình khắc phục bằng cách bỏ đi từ char trong dấu ngoặc đơn.
- Lỗi ORA-00907 thường xảy ra trong các câu lệnh như CREATE TABLE, CREATE CLUSTER và INSERT. Tất cả các câu lệnh này đều yêu cầu các dấu ngoặc đơn và các thông số cần thiết.
- Đôi khi cũng có thể xảy ra với các câu lệnh như mệnh đề WHERE. Ví dụ như trong câu lệnh: UPDATE table SET column = (SELECT ...)
Khắc phục lỗi
Trong trường hợp của mình, mình xin đưa ra ví dụ mà mình gặp phải:
create table tblUsers(
USRCODE varchar2(30 char),
USRPWD varchar2(300 char) not null,
USRDESC nvarchar2(200 char) not null,
USREMAIL varchar2(100 char) not null,
USRPHONE varchar2(20 char),
USRGROUP varchar2(30 char) not null,
USRNOTUSED char(1 char) not null,
primary key (USRCODE)
);
- Bạn lưu ý ở dòng mình tô màu đỏ nhé.
- Mình khai báo USRDESC kiểu dữ liệu là nvarchar2(200 char).
- NVARCHAR2 (n, char / byte): kiểu chuỗi ký tự Unicode có độ dài bất kỳ đến n ký tự, tối đa 4000 byte hoặc 4000 ký tự, mặc định là ký tự char.
- Bỏ từ char đi, còn lại NVARCHAR2(200).
- Vấn đề được giải quyết.
Bình luận