这与使oracle排序不区分大小写有关。我所见到的大多数解决方案都提到会话参数设置如下:使Oracle排序不区分大小写?
ALTER SESSION SET NLS_COMP = LINGUISTIC;
ALTER SESSION SET NLS_SORT = BINARY_CI;
默认情况下,NLS_COMP是BINARY。
我发现,如果我只是将NLS_SORT设置为BINARY_CI而没有将NLS_COMP设置为LINGUISTIC,它仍然可以工作,即oracle的排序不区分大小写。设置NLS_COMP参数有什么好处吗?
如果我想要一个在敏感搜索的情况下,我在搜索字段上使用上或下功能...说,除非你有数百个查询,需要区分大小写,否则UPPER(文本)像'%SEARCH_STRING%'' – thatjeffsmith
'不敏感的排序,我只是按较低(字段)或nlssort(字段,'nls_sort = binary_ci')排序。否则,您为了简化代码而交易安全 - 大多数情况下依赖于nls的代码是等待发生的事故。在几年后,一些新的维护者或者一个新的软件将会设置自己的会话参数,并且你的查询只会默默地失败。 –
我们确实有很多需要不区分大小写排序的查询。我们的要求是,如果我们按字符串排序,它必须不区分大小写 – Zenil