如何使Oracle DB的特定实例不区分大小写?

时间:2014-09-16 22:26:23

标签: oracle oracle11g

我想制作Oracle Database 11g企业版CASE INSENSITIVE的具体实例。如果有可能,任何人都会告诉我。我已经阅读了一些博客,其中整个数据库可以被制作为CASE INSENSITIVE但是对于特定的实例并没有任何想法。

1 个答案:

答案 0 :(得分:1)

您需要使用NLS_SORT, NLS_COMP参数。但是,不要直接在生产中实施,因为如果你不做额外的工作,你可能会遇到性能问题。

我不确定你的意思是什么"一个特定的实例"。它是RAC环境吗?您是否希望其中一个节点始终具有不区分大小写的会话?

无论如何,您可以在SESSION级别以及SYSTEM级别执行此操作。但是你真的想在SYSTEM级实现HARD方式吗?

例如,在会话级别:

SQL> alter session set nls_comp='LINGUISTIC';

Session altered

SQL> alter session set nls_sort='BINARY_CI';

Session altered

在系统级别:

您可以拥有AFTER LOGON TRIGGERexecute the alter session statements。 Eek,但那会破坏性能。您将不得不弄清楚创建不区分大小写的基于函数的索引所需的全部内容。根据我的经验,我总是看到不区分大小写的搜索速度较慢,无论你在哪里都有所需的imdex。

您可以查看我的文章,了解详细说明http://lalitkumarb.wordpress.com/2014/01/22/oracle-case-insensitive-sorts-compares/