1.oracle中的大小写
先上问题:
1)oracle中允许创建表名为小写字母的表么(比如table名为test)?
2)如果存在一个表名为ri_gds的表,请问下面三个语句哪个不会报错?
a.select * from ri_Gds;
b.select * from ri_gds;
c.select * from RI_GDS;
2.Enterprisedb中的大小写
先上问题:
3)EDB中允许创建表名为大写字母的表么(比如table名为TEST)?
4)如果存在一个表名为ri_gds的表,请问下面三个语句哪个不会报错?
a.如果有一张表ri_gds, 比如 select * from RI_gdS; 会报错么? 会or不会
b.如果有一张表RI_GDS ,select * from RI_GDS;会报错么? 会or不会
3.公布答案:
针对1 1)允许 2)三句都会出错
针对2 3)允许 4)a 不会,b会报错
4.试验我就不做了,这些试验很简单,不信的童鞋可以自己在数据库中试一下。
5.结论:oracle的默认会把字母转为大写字母,即无论你输入的是ri_Gds、ri_gds、RI_GDS都会转成RI_GDS,所以平时我们查询时输入小写的字母也不会报错,只要库中有对应的大家表名的表对象;如果库中有一个表名为小写字母的数据表,查询会失败,在查询的表名上加上双引号就可以了,oracle就不会自动转换了,select * from “ri_gds”;就能正确执行,但我们平时使用时,还是最好遵守规则。而Edb正好和oracle相反,默认会把用户所有的输入转换成小写,一般oracle迁移到enterprisedb后,对象名都默认转换成了小写,所以无论用户输入大写还是小写,都能正确执行。