synthetic,
Ваша проблема давно решена и нормально работает для кодировки СТ РК 1048-2002.
Это делается расширением characterset-а CL8MSWIN1251, лингвистической сортировки RUSSIAN и подменой (после определенной доработки напильником скомпилированных nlb-шек) соответствующих штатных nlb-файлов lx200ab.nlb и lx30023.nlb в директории $ORACLE_HOME/nls/data/.
В итоге имеем БД в кодировке CL8MSWIN1251, которая "понимает" специфические 9 букв казахского алфавита, правильно их сортирует, upper-ит, lower-ит, initcap_ит...
Путь, конечно, как бы не совсем правильный, но ввиду большого объема БД, ИМХО, это лучше, чем переводить базу в юникод, который сразу удвоит объем, занимаемый текстовыми данными...
7-й год - полет нормальный