Oracle NLS_SORT=BINARY_CI和NLS_COMP=BINARY有意义吗?

Oracle NLS_SORT=BINARY_CI和NLS_COMP=BINARY有意义吗?,oracle,oracle11g,Oracle,Oracle11g,我希望这不是一个愚蠢的问题: 我继承了许多Oracle存储过程、触发器。。。其中一个触发器编写如下: create or replace trigger TRN_NIS_LOGON after logon on database begin execute immediate 'ALTER SESSION SET NLS_SORT=BINARY_CI'; execute immediate 'ALTER SESSION SET NLS_COMP=LINGUISTI

我希望这不是一个愚蠢的问题:

我继承了许多Oracle存储过程、触发器。。。其中一个触发器编写如下:

create or replace trigger TRN_NIS_LOGON after logon on database 
begin
       execute immediate 'ALTER SESSION SET NLS_SORT=BINARY_CI'; 
       execute immediate 'ALTER SESSION SET NLS_COMP=LINGUISTIC'; 
end;
/
这引起了一些问题。所以,我读了

然后,有人告诉我,我应该改变触发器,如下所示:

create or replace trigger TRN_NIS_LOGON after logon on database 
begin
       execute immediate 'ALTER SESSION SET NLS_SORT=BINARY_CI'; 
       execute immediate 'ALTER SESSION SET NLS_COMP=BINARY'; 
end;
/
然而,我认为这没有道理。在我看来,NLS_SORT=BINARY_CI/AI需要与NLS_COMP=language和相应的语言索引相结合。目标是使oracle的行为类似于SQL server(我还浏览了以下内容:)


似乎上面的触发器是一个非常糟糕的主意,在处理具有语言索引的表时,必须为会话同时设置NLS_COMP和NLS_SORT。不应该使用这样的触发器。NLS_SORT=没有语言索引的二进制_CI将导致全表扫描。这是否正确?

此触发器的原因是使oracle能够执行不区分大小写的搜索,