Bạn đang nhầm lẫn giữa các loại ký tự khác nhau và những gì đang xảy ra. Khi bạn thực thi:
SELECT * from SOME_TABLE where CUSTOMER_NAME = 'Popeye '
Không có khoảng trắng nào được thêm "vào mọi hàng trong SOME_TABLE". Câu hỏi duy nhất là độ rộng của kết quả. Chiều rộng này được đặt bởi thuộc tính của các cột trong SOME_TABLE, không phải bởi những gì xuất hiện trong mệnh đề WHERE.
Nếu CUSTOMER_NAME của bạn được khai báo là giá trị char (x), thì chuỗi phải có độ dài đó. Giả sử, nó là char(10)
và bạn gán 'Popeye' cho nó. Giá trị có sáu ký tự và giá trị này phải được đệm thành 10, bằng cách nào đó. Tiêu chuẩn SQL là đặt ở phía bên tay phải, tạo ra giá trị 'Popeye '
.
Nếu bạn muốn các chuỗi có độ dài thay đổi, hãy sử dụng varchar hoặc varchar2.