10

如何使用 oracle 创建一个带有小字符的表格,当我创建一个带有小字符的表格时,它会将自动转换为大写字符。

4

2 回答 2

26

ANSI SQL 标准要求将(不带引号的)表名折叠为大写。

可以使用带引号的标识符创建具有小写名称的表(和列)(这再次遵循 SQL 标准):

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

但是,我强烈建议您要这样做。

以这种方式创建表后,您必须始终使用双引号,因为任何未加引号的名称(遵循 SQL 标识符的规则)将再次折叠为大写,因此与存储时的名称不匹配在系统目录中。

因此,以下语句将不起作用

SELECT id, somecolumn FROM foo;

您必须使用带引号的标识符:

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

有关(引用)标识符的更多详细信息,请阅读手册中的数据库对象命名规则一章。

于 2012-11-12T11:08:40.927 回答
0

用引号 ( ") 将表名括起来。也像这样创建你的表

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

现在你的表名是t小写的。当您访问您的表格时,您必须始终使用引号。例如

select * from "t";

您可以对其他对象(列、索引等)使用相同的构造。

无论如何,SQL 是不区分大小写的,你需要一个很好的理由来使用大小写相关的对象名称。

于 2012-11-12T11:15:28.223 回答