Oracle表名称和字段名称带引号创建时,会区分大小写
用Oracle的GUI工具创建数据库表时 给表名称加上双引号,则表名称区分大小写,如果输入包含小写字母,再用时,也必须加上双引号来区分大小写;如果输入的均为大写字母,则创建的和不加引号创建的表名一样,原因Oracle中sql语句中输入的串默认均被系统转换为大写,加引号后则系统不进行大写转换。
GUI工具中生成的sql语句对带不带引号没有明显的区分,比如,创建“Demo”和Demo表语句显示是一样的:
- CREATETABLE"SYSTEM"."Demo"("ID"LONGNOTNULL,"NAME"VARCHAR2(10)NOTNULL)
感觉是Oracle的Bug。
对应表名为:“Demo” 的表
对带引号的表名
(“Demo”):select*From“Demo”;
对不带引号的表名
(Demo):select*FromDemo;select*FromDEMO;
均可正常执行。
下面的:
select*From“DEMO”;
则不能正常执行。
而大写表名(DEMO):
select*FromDemo;select*FromDEMO;select*From“DEMO”;
均可正常执行