Страница 1 из 1
Изменение кодировки "на ходу"
Добавлено: 04 май 2006, 07:01
igrok
Сразу прошу прощения за глупый вопрос
недавно работаю с Firebyrd, и столкнулся с проблемой upper(русских букв), нашёл в нете решение этой проблемы но там нужно чтобы поле которое я пытаюсь upper-нуть было в кодировке windows 1251, сейчас у этого поля стоит "кодировка" NONE, так вот вопрос - не повредит ли базе если я изменю в свойствах домена этого поля кодировку (в таблице уже 250тыс. записей)
Добавлено: 04 май 2006, 09:41
kdv
копируй данные. только начал работать, уже ковыряешь системные таблицы - заковыряешь БД, будешь потом мучиться.
лучше создай базу еще раз, из скрипта, сразу в win1251. и перекинь туда данные.
Re: Изменение кодировки "на ходу"
Добавлено: 04 май 2006, 10:18
v6y
igrok писал(а):Сразу прошу прощения за глупый вопрос
недавно работаю с Firebyrd, и столкнулся с проблемой upper(русских букв), нашёл в нете решение этой проблемы но там нужно чтобы поле которое я пытаюсь upper-нуть было в кодировке windows 1251, сейчас у этого поля стоит "кодировка" NONE, так вот вопрос - не повредит ли базе если я изменю в свойствах домена этого поля кодировку (в таблице уже 250тыс. записей)
Можно привести через cast к нужной кодировке (FB 1.5):
Код: Выделить всё
select
upper(
cast(russian_field as varchar(128) character set win1251)
)
from table
Для поиска:
Код: Выделить всё
select * from table
where
upper(
cast(russian_field as varchar(128) character set win1251)
)
like cast(%СТРОКА ПОИСКА%' as varchar(16) character set win1251)
Добавлено: 04 май 2006, 21:01
DS
Думаю можно еще создать новое поле с нужной кодировкой и перелить в него данные, потом старое грохнуть, а новое переименовать в старое...
Добавлено: 09 май 2006, 09:44
igrok
Спасибо всем кто откликнулся
