Oracle区分大小写:注意细节的重要性(oracle不区分大小写)

Oracle区分大小写:注意细节的重要性

Oracle 的文本字符串区分大小写,熟悉 Oracle 技术的专业人士都知道它的重要性,但是在实际应用中,很容易出现小失误,而细节的重要性强调我们必须特别注意这些细节,下面的一个例子将证明此点:

在一次数据库应用中,比如一个Web应用,在数据库中插入了一条这样的记录):

SQL> INSERT INTO T_Info (Name,Age) VALUEs (“TOM”, 18);

然后,在进行查询时,想要查询出记录中 Name 为 TOM 的数据,这时写一个查询语句:

SQL> SELECT * FROM T_Info WHERE Name = ‘tom’;

即使 Tom 和 tom 看起来字面上相同,但由于 Oracle 是区分大小写的,因此上面的查询语句永远无法查询出这条记录;如果失误的情况发生在关键的决策上,会伤害到公司的利益,可见细节的重要性了。

此外,如果禁用 Oracle 的 “NLS Object Character Set” 参数,也会导致区分大小写问题,比如:

SQL> ALTER SESSION SET NLS_OBJECT_RETAR=AL32UTF8;

此外,在建立特殊列时,也需要注意大小写:

SQL> CREATE TABLE TEST (ID NUMBER PRIMARY KEY,”NAME” VARCHAR2(50));

尽管新建列的”NAME”不使用双引号,但 Oracle 会将其视为区分大小写的列名,会对后续的 DML 操作造成很大的影响,因此对于建立特殊列时要非常谨慎!

总之, Oracle 是一个字符串区分大小写的数据库,我们都必须特别注意它的相关细节,这样才能使数据库更加稳定、可靠,从而提高业务的效率。那么,在一个重要的数据库应用中,尤其是在涉及关键判断、伤害公司利益的时候,我们一定要提高警惕,不断核查细节,以便保证数据库应用能够顺利运行下去!


数据运维技术 » Oracle区分大小写:注意细节的重要性(oracle不区分大小写)