Kovalenko Dmitry wrote:

А хранимую процедуру не пробовал в UTF-8 отковертировать и подсунуть серверу (c ctype==геа8) ?

В таком виде компилится
begin
/* Р?С,С++Р?С?С,Р?Р? Р"Р°С,Р?Р?С?Р?С<РNo Р?Р°Р?Р?Р? (Р?С<Р?Р°С,С? С?Р?С?Р°Р?Р?С? Р?Р?Р?Р??) */ /* Р?Р?С?Р?Р?Р?Р°Р?С<Р?Р°Р?Р? Р?С...Р?Р?Р?Р?РNo Р?Р°С?Р°Р?Р?С,С? Р? Р?Р?С?Р?Р?Р?Р?Р?С?С? - Р?Р?С? Р?С?Р?С?С0/00Р?Р?Р? РёС?Р?Р?Р?С?Р·Р?Р?Р°Р?РёС? */ /* Р"Р?Р?Р°Р?Р? Р?Р?С?Р?Р?Р?Р?С?С?, Р?Р?Р? Р?Р?С?Р?Р?Р?Р?РёС... Рё С,С?Рё Р?Р?С?Р?Р?Р?Р?РёС... Р?С?Р?Р?С< Р?С...Р?Р?Р?Р?РNo С?С,С?Р?Р?Рё */ /* Р"Р?Р?Р°Р?Р? РёР?С? Р?Р?Р· Р?Р?Р?Р?РNo, Р?Р?Р· Р?Р?С?С... Рё Р?Р?Р· С,С?Р?С... Р?С?Р?Р? */
  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 С?РёР?Р?Р?Р?Р° Рё Р?Р?Р?С?СEURР?, Р?С?С,Р°Р?Р?С?Р?Р? Р?С' Р?Р?Р·
     РёР·Р?Р?Р?Р?Р?РёС? */
/* Р.С?Р?Рё Р?Р?РёР?Р° РёР?Р?Р?Рё 2 С?РёР?Р?Р?Р?Р° Рё Р?Р?Р?С?СEURР?, Р?С?С,Р°Р?Р?С?Р?Р? Р?Р?Р? Р?Р?Р· РёР·Р?Р?Р?Р?Р?РёС? */
  if (LEN <= 2) then begin OUT=INP; exit; end
/* Р.С?Р?Рё Р? Р?Р?Р?Р? Р?Р?С?С?С?С?Р?Р?Р? Р?С,С++Р?С?С,Р?Р? (С,РёР?Р° "Р?С<Р·С<Р?-Р?Р?Р?С<"), Р?Р?Р·Р?С?Р°С0/00Р°Р?Р? Р?Р?Р? Р?Р°Р?
     Р?С?С,С? */
  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
  /* Р' Р?С?С?Р?РёС... С?Р?С?С++Р°С?С... Р?Р?Р·Р?С?Р°С0/00Р°Р?Р? Р?С...Р?Р? */
  OUT = INP;
end

но как-то некрасиво выглядит :)

Ответить