日期:2014-05-16  浏览次数:20481 次

Oracle表名称和字段名称区分大小写
Oracle表名称和字段名称带引号创建时,会区分大小写  

   用Oracle的GUI工具创建数据库表时 给表名称加上双引号,则表名称区分大小写,如果输入包含小写字母,再用时,也必须加上双引号来区分大小写;如果输入的均为大写字母,则创建的和不加引号创建的表名一样,原因Oracle中SQL语句中输入的串默认均被系统转换为大写,加引号后则系统不进行大写转换。
GUI工具中生成的SQL语句对带不带引号没有明显的区分,比如,创建“Demo”和Demo表语句显示是一样的:
CREATE TABLE "SYSTEM"."Demo" ("ID" LONG NOT NULL, "NAME" VARCHAR2(10) NOT NULL) 

感觉是Oracle的Bug。

对应表名为:“Demo” 的表
对带引号的表名
(“Demo”):select * From “Demo”;
对不带引号的表名
(Demo):select * From Demo;select * From DEMO;
均可正常执行。
下面的:
select * From “DEMO”;
则不能正常执行。
而大写表名(DEMO):
select * From Demo;select * From DEMO;select * From “DEMO”;
均可正常执行