QuânSysAd's Blog: query
Hiển thị các bài đăng có nhãn query. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn query. Hiển thị tất cả bài đăng

15 tháng 7 2019

SQL: Query không phân biệt chữ thường chữ hoa đối với Oracle

Cách 1 là hãy ép data thành một kiểu chũ thường hoặc chữ HOA bằng UPPER() hoặc LOWER() :
select * from my_table where upper(column_1) = upper('my_string');
HOẶC
select * from my_table where lower(column_1) = lower('my_string');
Nếu sử dụng LIKE thì bạn phải nối dấu % xung quanh chuỗi (string) mà bạn tìm kiếm
select * from my_table where lower(column_1) LIKE lower('my_string') || '%';
Cách 2:
Từ bản Oracle 10g trở đi thì đã có hàm REGEXP_LIKE(). Ta có thể chỉ ra _match_parameter_'i' để thực hiện tìm kiếm không phân biệt chữ thường chữ HOA (case-insensitive)
select * from my_table where regexp_like(column_1, '^my_string$', 'i');

27 tháng 3 2015

Sửa lỗi không Truy vấn được unicode sử dụng Oracle SQL Developer

Bạn sử dụng Oracle SQL Developer (như tôi sử dụng phiên bản 3.2.10.09) để truy vấn dữ liệu trong bảng. Tuy nhiên khi bạn đánh câu lệnh:

select * from sinh_vien

Thì ở trong bảng sinh_viên, dữ liệu ra đầy đủ, hiển thị rõ tiếng Việt unicode, giả sử có cột ten với bản ghi là 'Nguyễn Văn A'.

Khi bạn đánh tiếp câu lệnh

select * from sinh_vien where ten like N'Nguyễn Văn A'

Thì lại không ra kết quả.

Vấn đề đã được giải quyết theo cách như sau:

Vào thư mục cài đặt của Oracle SQL Developer \sqldeveloper\sqldeveloper\bin tìm file sqldeveloper.conf sau đó mở file đó bằng trình soạn văn bản. Trong đó có một loạt các dòng mở đầu bằng AddVMOption. Thêm một dòng nữa với nội dung như sau:

AddVMOption -Doracle.jdbc.convertNcharLiterals=true

Trong trường hợp của tôi, file sqldeveloper.conf sau khi sửa sẽ có nội dung như sau:

IncludeConfFile ../../ide/bin/ide.conf

SetJavaHome ../../jdk

AddVMOption -Doracle.ide.util.AddinPolicyUtils.OVERRIDE_FLAG=true

AddVMOption -Dsun.java2d.ddoffscreen=false

AddVMOption -Dwindows.shell.font.languages=

AddVMOption -XX:MaxPermSize=256M

AddVMOption -Doracle.jdbc.mapDateToTimestamp=false

AddVMOption -Doracle.jdbc.convertNcharLiterals=true

IncludeConfFile sqldeveloper-nondebug.conf

Sau đó bạn mở Oracle SQL Developer thực hiện lại truy vấn với câu lệnh có Unicode (tiếng Việt) trong cửa sổ soạn thảo SQL. Lưu ý chuỗi Unicode phải bắt đầu bằng chữ N.

select * from sinh_vien where ten like N'Nguyễn Văn A'

Bạn sẽ thấy bản ghi xuất hiện ở khung kết quả.