IEA Software, Inc.

IEA Software Knowledge Base - ID:58390

IEA Knowledge base

Emerald (KB ID: 58390)

Sep 14 2009

All Emerald search operations on the Oracle platform are case sensitive. How can case-insensitive matching be configured with Oracle?

Sep 14 2009

This is not an Emerald related issue. Case insensitive matching is the traditional default server configuration for Oracle. We strongly recommend consulting your Oracle DBA for resolution.

To enable case insensitive searches the following environment variables must be set before Emerald and all related processes access the database:

export NLS_SORT=BINARY_CI
export NLS_COMP=LINGUISTIC

It is recommended the above two statements be appended to the oracle_env.sh startup environment script (typically /etc/profile.d/oracle_env.sh) needed for database accesss.

NOTE: When this is done existing indexes created using the default case-insensitive options will not be usable by Oracles query optimizer to resolve queries. We strongly recommend running the following queries against an Emerald 5 Oracle database to enable indexed search operations to continue.

CREATE INDEX ciLogin ON SubAccounts
nlssort(Login,'NLS_SORT=BINARY_CI');

CREATE INDEX ci_SubAccounts_Email ON SubAccounts
nlssort(Email,'NLS_SORT=BINARY_CI');

CREATE INDEX cI_CardAccounts_Login ON CardAccounts
nlssort(Login,'NLS_SORT=BINARY_CI');

CREATE INDEX ci_ServerPorts_UserName ON ServerPorts
nlssort(Username,'NLS_SORT=BINARY_CI');