Привет всем.
Сервер 2.0.3.13023
Кодировка базы UTF8
Есть хранимые процедуры склонения имен, отчеств, фамилий типа
begin
/* Отчество Дательный падеж (выдать справку КОМУ?) */
/* Перекладываем входной параметр в переменную - для будущего
использования */
/* Делаем последнюю, две последних и три последних буквы входной
строки */
/* Делаем имя без одной, без двух и без трех букв */
select OUT, LAST1, LAST2, LAST3, BEZ1, BEZ2, BEZ3, LEN
from GET_BEZ_AND_LAST(:INP)
into :INPU, :LAST1, :LAST2, :LAST3, :BEZ1, :BEZ2, :BEZ3, :LEN;
/* Если длина 2 символа и меньше, оставляем её без
изменения */
/* Если длина имени 2 символа и меньше, оставляем его без изменения */
if (LEN <= 2) then begin OUT=INP; exit; end
/* Если в поле нерусское отчество (типа "Кызыл-оглы"), возвращаем его как
есть */
if ((LAST1<>'ч') and (LAST1<>'а')) then begin OUT=INP; exit; end
/* "Сергеевич" - "Сергеевичу" (мужские) */
if (sex=0) then begin OUT=INP||'у'; exit; end
/* "Сидоровна" - "Сидоровне" (женские) */
if (sex=1) then begin OUT=bez1||'е'; exit; end
/* В других случаях возвращаем вход */
OUT = INP;
end
которые не компилятся в базе UTF8 из-за букв в WIN1251
с ошибкой
Invalid token.
SQL error code = -104.
Malformed string.
как это дело обойти/порешать с минимальными затратами?