2012-11-12 18 views
6

Làm thế nào tôi có thể tạo một bảng với oracle nhưng với các ký tự nhỏ, khi tôi tạo một bảng với các ký tự nhỏ, nó chuyển đổi tự động thành các ký tự viết hoa.Làm thế nào tôi có thể tạo một bảng với oracle nhưng với các ký tự nhỏ?

+0

bạn muốn làm gì? cung cấp cho chúng tôi thêm thông tin, xin vui lòng – semTex

+0

Bản ghi đang được chuyển đổi sang các trường hợp trên hoặc các cột trong bảng đang được chuyển đổi thành chữ hoa thường thấp hơn? – user75ponic

+0

khi tôi thực hiện truy vấn này "tạo bảng t ( một số, b varchar2 (10) )" – user1384279

Trả lời

17

Tên bảng xếp (không được trích dẫn) lên chữ hoa được yêu cầu bởi tiêu chuẩn SQL ANSI.

Bạn thể tạo bảng (cột) với tên chữ thường sử dụng một định trích dẫn (một lần nữa này theo tiêu chuẩn SQL):

CREATE TABLE "foo" 
(
    "id"   integer, 
    "SomeColumn" varchar(100) 
); 

tôi sẽ tuy nhiên khuyên bạn không làm cái đó.

Một khi bạn có bảng của bạn tạo ra theo cách đó, bạn có luôn sử dụng dấu ngoặc kép bởi vì bất kỳ tên không trích dẫn sẽ (theo các quy tắc cho định danh SQL) sẽ được một lần nữa gấp đến chữ hoa và do đó thắng' t khớp với tên khi nó được lưu trữ trong danh mục hệ thống.

Therefor báo cáo kết quả sau đây sẽ không công việc:

SELECT id, somecolumn FROM foo; 

Bạn phải sử dụng một số nhận dạng trích dẫn:

SELECT "id", "SomeColumn" FROM "foo"; 

Để biết thêm chi tiết về định danh (trích dẫn), vui lòng đọc hướng dẫn: http://docs.oracle.com/cd/E11882_01/server.112/e26088/sql_elements008.htm#i27561

+0

Giải thích tuyệt vời + 1 – user75ponic

+1

đồng ý với một con ngựa không có tên 'Tôi đã nhìn thấy và phải gỡ lỗi mã sản xuất đã sử dụng mã này, vì những kẻ viết ứng dụng là các nhà phát triển Java. tên, vì đó là cách họ nhập số nhận dạng trong Java. đó là một cơn ác mộng tuyệt đối để duy trì điều này trong oracle. bạn gần như cảm thấy như ném bàn phím qua màn hình khi bạn thấy hàng trăm lượt xem mà tất cả đều chứa cột trường hợp hỗn hợp + tên xem và bạn được yêu cầu điều chỉnh một số sql dựa vào chúng. – DazzaL

0

Kèm theo tên bảng trong dấu ngoặc kép ("). Đồng thời tạo bảng của bạn như thế này

create table "t" (a number, b varchar2(10)); 

Bây giờ tên bảng của bạn là t in thường. Bạn phải luôn luôn sử dụng dấu ngoặc kép khi bạn truy cập vào bảng của mình. Ví dụ:

select * from "t"; 

Bạn có thể sử dụng cùng cấu trúc cho các đối tượng khác (cột, chỉ mục, ...).

Dù sao, SQL không phân biệt chữ hoa chữ thường, bạn cần một lý do chính đáng để sử dụng tên đối tượng phụ thuộc trường hợp.

Các vấn đề liên quan