0
Я есть такой запрос и такую ошибку:Vertica - строка октетов длины
dbadmin=> update platforms set description = E'ЮлÑ\217 - Ð\237еÑ\200Ñ\203, Ð\221оливиÑ\217, ÐквадоÑ\200 where id = 189;
ERROR 4800: String of 92 octets is too long for type Varchar(80)
Когда я пытаюсь проверить длину жала, я получил еще одно значение:
dbadmin=> select octet_length(E'ЮлÑ\217 - Ð\237еÑ\200Ñ\203, Ð\221оливиÑ\217, ÐквадоÑ\200');
octet_length
--------------
84
(1 row)
Почему значение отличается ?
И как я могу автоматически отрезать строку до определенного числа октетов? В настоящее время я использую функцию питона, и он возвращает строку длиной 80 (выше строка), есть некоторые sqlalchemy
классов:
from sqlalchemy.sql.sqltypes import String
from project import SessionVertica
def process(max_length, value):
literal_processor = String.literal_processor(SessionVertica.bind.dialect)
if literal_processor:
result = unicode(literal_processor(value))
else:
result = unicode(value)
if len(result) >= max_length:
result = result[:max_length - 2] + '\''
return 'E' + result