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