Во-первых, сделайте
select * from v$nls_parameters where parameter like '%SET%';
Наборы символов могут быть сложными. Вы можете иметь однобайтовые наборы символов, многобайтовые наборы символов фиксированного размера и многобайтовые наборы символов переменного размера. См. Описания Unicode здесь
Во-вторых, если вы соединяете строку в однобайтовом наборе символов со строкой в двухбайтовом наборе символов, у вас есть выбор. Вы можете выполнить двоичное / байтовое сравнение (которое, как правило, не будет совпадать, если вы сравните между однобайтовым набором символов и двухбайтовым набором символов). Или вы можете провести лингвистическое сравнение, которое, как правило, будет означать некоторую стоимость ЦП, поскольку одно значение преобразуется в другое, и часто не удается использовать индекс.
Упорядочены индексы, A, B, C и т. Д. Но такие символы, как Ä, могут попадать в разные места в зависимости от языкового порядка. Скажем, структура индекса ставит Ä между A и B. Но тогда вы делаете лингвистическое сравнение. Язык этого сравнения может поставить Ä после Z, и в этом случае индекс не может быть использован. (Помните, что ваше состояние может быть МЕЖДУ, а не =).
Короче говоря, вам потребуется много подготовки, как в вашей схеме, так и в центральном хранилище, чтобы обеспечить эффективное соединение между различными наборами символов.