Đưa dấu ngoặc kép xung quanh số nhận dạng trong Oracle gây ra Oracle để xử lý các định danh là trường hợp nhạy cảm hơn là sử dụng mặc định của trường hợp vô cảm. Nếu bạn tạo một bảng (hoặc một cột) với dấu nháy kép xung quanh tên, bạn phải luôn luôn tham chiếu đến định danh với dấu ngoặc kép và bằng cách xác định chính xác trường hợp (ngoại trừ tất cả các định danh chữ hoa, trong đó dấu nháy kép là vô nghĩa).
Theo trang bìa, Oracle luôn thực hiện khớp định danh phân biệt chữ hoa chữ thường. Nhưng nó luôn luôn định danh các mã định danh không được trích dẫn kép lên chữ hoa trước khi thực hiện khớp. Nếu bạn đặt dấu nháy kép xung quanh một số nhận dạng, Oracle sẽ bỏ qua việc truyền sang chữ hoa.
Vì vậy, nếu bạn làm điều gì đó như
CREATE TABLE my_table(
col1 number,
col2 number
)
bạn có thể
SELECT * FROM my_table
SELECT * FROM MY_TABLE
SELECT * FROM My_Table
SELECT * FROM "MY_TABLE"
nhưng cái gì đó như
SELECT * FROM "my_table"
sẽ thất bại.
Mặt khác, nếu bạn làm điều gì đó như
CREATE TABLE "my_other_table"(
col1 number,
col2 number
)
bạn không thể làm
SELECT * FROM my_other_table
SELECT * FROM MY_OTHER_TABLE
SELECT * FROM My_Other_Table
SELECT * FROM "MY_OTHER_TABLE"
nhưng điều này
SELECT * FROM "my_other_table"
sẽ làm việc
Nguồn
2009-02-18 22:24:14
Câu trả lời này bỏ qua thực tế là nó cũng cho phép số nhận dạng chứa các ký tự không hợp pháp, chẳng hạn như ký tự khoảng trắng. Nó cũng có thể là thực hành tốt nhất để chỉ sử dụng chữ hoa, chữ số và gạch dưới. Làm như vậy sẽ làm cho cuộc sống của mọi người dễ dàng hơn. – jpmc26