如何使Oracle不区分大小写 < Oracle 10G中是否有一个设置将数据视为不区分大小写的设置?我看到了一个解决办法。但是,这是在会话中完成的。我要找的是在模式或表上的一个设置,将其数据视为不区分大小写。如果是在会话上,那么我必须对所有存储过程进行更改

如何使Oracle不区分大小写 < Oracle 10G中是否有一个设置将数据视为不区分大小写的设置?我看到了一个解决办法。但是,这是在会话中完成的。我要找的是在模式或表上的一个设置,将其数据视为不区分大小写。如果是在会话上,那么我必须对所有存储过程进行更改,oracle,plsql,case-insensitive,Oracle,Plsql,Case Insensitive,没有使架构或表“不区分大小写”的选项 您可以使用NLS_uu参数在会话上执行此操作,也可以在整个实例受影响的db init文件中执行此操作。但是,对于严格的相等搜索,这些搜索仅不区分大小写 如果您需要使用类似的,则需要考虑使用ReGeExpLi。在ReGExpLy的情况下,您不需要NLSSO排序设置,因为有一个选项ReExpExtIt让它考虑事物不区分大小写。 没有使架构或表“不区分大小写”的选项 您可以使用NLS_uu参数在会话上执行此操作,也可以在整个实例受影响的db init文件中执行此操

没有使架构或表“不区分大小写”的选项

您可以使用NLS_uu参数在会话上执行此操作,也可以在整个实例受影响的db init文件中执行此操作。但是,对于严格的相等搜索,这些搜索仅不区分大小写

如果您需要使用类似的,则需要考虑使用ReGeExpLi。在ReGExpLy的情况下,您不需要NLSSO排序设置,因为有一个选项ReExpExtIt让它考虑事物不区分大小写。


没有使架构或表“不区分大小写”的选项

您可以使用NLS_uu参数在会话上执行此操作,也可以在整个实例受影响的db init文件中执行此操作。但是,对于严格的相等搜索,这些搜索仅不区分大小写

如果您需要使用类似的,则需要考虑使用ReGeExpLi。在ReGExpLy的情况下,您不需要NLSSO排序设置,因为有一个选项ReExpExtIt让它考虑事物不区分大小写。


区分大小写是计算的基础,原因很简单,ASCII值“yun”!=“YUN”的ASCII值。所以,当你说

将数据视为不区分大小写

。。。你的意思是仅仅为了搜索还是为了存储

在每次搜索中强制执行案例的问题是:

SQL> create table t23 (id number, name varchar2(20))
  2  /

Table created.

SQL> create unique index  t23_uk on t23(name)
  2  /

Index created.

SQL> insert into t23 values (1, 'SAM-I-AM')
  2  /

1 row created.

SQL> insert into t23 values (2, 'sam-i-am')
  2  /

1 row created.

SQL> select id, name, ascii(name) from t23
  2  /

        ID NAME                 ASCII(NAME)
---------- -------------------- -----------
         1 SAM-I-AM                      83
         2 sam-i-am                     115

SQL>
如果在模式或表级别强制执行不区分大小写的搜索,我们如何区分“sam-I-am”和“sam-I-am”

在某种程度上,可以强制数据存储不区分大小写,尽管是在单个列级别:

SQL> delete from t23
  2  /

2 rows deleted.

SQL> drop index t23_uk
  2  /

Index dropped.

SQL> create unique index  t23_uk on t23(upper(name))
  2  /

Index created.

SQL> insert into t23 values (1, 'SAM-I-AM')
  2  /

1 row created.

SQL> insert into t23 values (2, 'sam-i-am')
  2  /
insert into t23 values (2, 'sam-i-am')
*
ERROR at line 1:
ORA-00001: unique constraint (APC.T23_UK) violated


SQL>

区分大小写是计算的基础,原因很简单,ASCII值“yun”!=“YUN”的ASCII值。所以,当你说

将数据视为不区分大小写

。。。你的意思是仅仅为了搜索还是为了存储

在每次搜索中强制执行案例的问题是:

SQL> create table t23 (id number, name varchar2(20))
  2  /

Table created.

SQL> create unique index  t23_uk on t23(name)
  2  /

Index created.

SQL> insert into t23 values (1, 'SAM-I-AM')
  2  /

1 row created.

SQL> insert into t23 values (2, 'sam-i-am')
  2  /

1 row created.

SQL> select id, name, ascii(name) from t23
  2  /

        ID NAME                 ASCII(NAME)
---------- -------------------- -----------
         1 SAM-I-AM                      83
         2 sam-i-am                     115

SQL>
如果在模式或表级别强制执行不区分大小写的搜索,我们如何区分“sam-I-am”和“sam-I-am”

在某种程度上,可以强制数据存储不区分大小写,尽管是在单个列级别:

SQL> delete from t23
  2  /

2 rows deleted.

SQL> drop index t23_uk
  2  /

Index dropped.

SQL> create unique index  t23_uk on t23(upper(name))
  2  /

Index created.

SQL> insert into t23 values (1, 'SAM-I-AM')
  2  /

1 row created.

SQL> insert into t23 values (2, 'sam-i-am')
  2  /
insert into t23 values (2, 'sam-i-am')
*
ERROR at line 1:
ORA-00001: unique constraint (APC.T23_UK) violated


SQL>