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

Lý do tại sao oracle phân biệt chữ hoa chữ thường?

Theo mặc định, số nhận dạng Oracle (tên bảng, tên cột, v.v.) là chữ hoa-thường không phân biệt . Bạn có thể phân biệt chữ hoa chữ thường bằng cách sử dụng dấu ngoặc kép xung quanh chúng (ví dụ:SELECT * FROM "My_Table" WHERE "my_field" = 1 ). Từ khóa SQL (SELECT , WHERE , JOIN , v.v.) luôn không phân biệt chữ hoa chữ thường.

Mặt khác, so sánh chuỗi có phân biệt chữ hoa chữ thường (ví dụ:WHERE field='STRING' sẽ chỉ khớp với các cột có 'STRING' ) theo mặc định. Bạn có thể phân biệt chữ hoa chữ thường bằng cách đặt NLS_COMPNLS_SORT thành các giá trị thích hợp (ví dụ:LINGUISTICBINARY_CI tương ứng).

Lưu ý:Khi yêu cầu các chế độ xem từ điển dữ liệu (ví dụ:dba_tables ) tên sẽ ở dạng chữ hoa nếu bạn tạo chúng mà không có dấu ngoặc kép và các quy tắc so sánh chuỗi như được giải thích trong đoạn thứ hai sẽ áp dụng tại đây.

Một số cơ sở dữ liệu (Oracle, IBM DB2, PostgreSQL, v.v.) sẽ thực hiện so sánh chuỗi phân biệt chữ hoa chữ thường theo mặc định, một số cơ sở dữ liệu khác phân biệt chữ hoa chữ thường (SQL Server, MySQL, SQLite). Điều này không phải là tiêu chuẩn theo bất kỳ phương tiện nào, vì vậy chỉ cần lưu ý cài đặt db của bạn là gì.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-20001 trong R12 Thu thập thống kê giản đồ về 11g (FND_HISTOGRAM_COLS)

  2. Cách tốt nhất để đặt lại một chuỗi Oracle về giá trị tiếp theo trong một cột hiện có?

  3. Giá trị của dữ liệu theo thời gian

  4. Nhóm dịch vụ thay đổi trong R12.2

  5. Chuyển đổi Oracle current_timestamp sang giây