powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Сменить кодировку базы (опять не получилось)
10 сообщений из 10, страница 1 из 1
Сменить кодировку базы (опять не получилось)
    #32178002
Фотография Владимир П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеем: Oracle 8.0.6, рабочая БД в кодировке CL8ISO8859P5, UnixWare.
Требуется: то же самое, но тестовая БД в кодировке CL8MSWIN1251.

Делал так:
1. Экспорт.
2. Создание базы в новой кодировке.
3. Импорт.
Не получилось.

Потом делал так:
1. На рабочем сервере: NLS_LANG=....CL8MSWIN1251
2. Экспорт на рабочем сервере. Дамп, по логике, должен быть в кодировке MSWIN -- верно?
3. NLS_LANG на рабочем сервере вернул в исходное значение.
4. На тестовом сервере: NLS_LANG=....CL8MSWIN1251
5. Создание базы.
6. Импорт.
Опять не получилось.

Что я не так понимаю, и как исправить?
Разработка чужая, и совет с функцией CONVERT не годится.

Краем уха мне говорили, что надо менять байт в дампе -- какие тогда NLS_LANG надо ставить перед экспортом и перед импортом?
...
Рейтинг: 0 / 0
Сменить кодировку базы (опять не получилось)
    #32178040
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Экспорт нужно делать в той кодировке клиента, в которой у тебя база, это понятно?

При импорте уже не обязательно, что-бы в сессии была кодировка как в исходной БД, главное что бы указанная кодировка была родственной для исходной БД. Это также означает, что кодировка в новой базе должна быть в такой же родственной кодировке.
...
Рейтинг: 0 / 0
Сменить кодировку базы (опять не получилось)
    #32178049
Фотография Владимир П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Экспорт нужно делать в той кодировке клиента, в которой у тебя база

Имеется в виду исходная база? Т.е. первый вариант моих действий был правильный?

>При импорте уже не обязательно, что-бы в сессии была кодировка как в исходной БД

Но она должна быть такой же, как в новой базе?
Или это тоже необязательно -- но тогда непонятно, почему не прошел первый вариант. (NLS_LANG была настроена на ISO)

"Родственные кодировки" -- это, как я понял, которые позволяют конвертацию символов.
...
Рейтинг: 0 / 0
Сменить кодировку базы (опять не получилось)
    #32178055
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Последовательность действий
1)
export NLS_LANG=AMERICAN_AMERICA.CL8ISO8859P5
exp
2)
export NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251

CREATE DATABASE.....
CHARACTER SET CL8MSWIN1251;

imp
...
Рейтинг: 0 / 0
Сменить кодировку базы (опять не получилось)
    #32179633
Фотография Владимир П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять не получилось. На месте русских букв такие же кракозябры.
...
Рейтинг: 0 / 0
Сменить кодировку базы (опять не получилось)
    #32180052
vskv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Ты уверен, что у тебя charset базы и charset собственно данных совпадает с тем, что ты привёл в первом сообщении?

2. Огласи результат работы запроса типа
Код: plaintext
 select some_field, dump(some_field) from table_that_contains_russian and rownum= 1 

... на обоих базах (оригинальной, и что получилось).

3. Шапки экспорта и импорта "в студию" (те строки, где говорится о том, какой charset используется).

4. Может быть собственно с кодировокой всё в порядке, а у тебя проблема со шрифтами?

5. Да, и, собственно, крякозбры как выглядят? Рассказывать, чем на вид отличается Win1251 в ISO и Win1251 в Win1252?
...
Рейтинг: 0 / 0
Сменить кодировку базы (опять не получилось)
    #32180148
Фотография Владимир П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2. Ставим NLS_LANG=...CL8MSWIN1251, запускаем TOAD, смотрим поле NAME и видим:

Рабочая база:
NAME: Фюя. ђхъѓљшщ ёїхђ
DUMP(NAME): 'Typ=1 Len=17: 196,238,239,46,32,242,229,234,243,249,232,233,32,241,247,229,242'

Преобразованная база:
NAME: 'Фюя. ђхъѓљшщ ёїхђ'
DUMP(NAME): 'Typ=1 Len=17: 212,254,255,46,32,144,245,250,131,154,248,249,32,184,191,245,144'

А теперь поставим NLS_LANG=...CL8ISO8859P5:

Рабочая база:
NAME: 'Доп. текущий счет'
DUMP(NAME): 'Typ=1 Len=17: Typ=1 Len=17: 196,238,239,46,32,242,229,234,243,249,232,233,32,241,247,229,242'

Преобразованная база:
NAME: 'Доп. текущий счет'
DUMP(NAME): 'Typ=1 Len=17: 212,254,255,46,32,144,245,250,131,154,248,249,32,184,191,245,144'

3.
exp:
Connected to: Oracle8 Enterprise Edition Release 8.0.6.2.0 - Production
PL/SQL Release 8.0.6.2.0 - Production
Export done in CL8ISO8859P5 character set and CL8ISO8859P5 NCHAR character set

imp:
Connected to: Oracle8 Enterprise Edition Release 8.0.6.3.0 - Production
PL/SQL Release 8.0.6.3.0 - Production
Export file created by EXPORT:V08.00.06 via conventional path
...
Рейтинг: 0 / 0
Сменить кодировку базы (опять не получилось)
    #32180913
vskv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по результатам DUMP, а также после сравнения их с вот этим:
http://www.free.net/Info/em-01/iso8859-5.htm становится ясно, что собственно данные у вас в "живой" базе -- в CL8MSWIN1251.

Т.е. остаются два варианта: оставить всё как есть, и манипуляции с дампом (байт отвечающий за charset). Последний вариант не так давно здесь обсуждался step-by-step...
...
Рейтинг: 0 / 0
Сменить кодировку базы (опять не получилось)
    #32180914
vskv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока искал картинку с ISO нашёл http://sci.kz/~sairan/kazcode/ .
Оказывается Латвия с её семью (старый DOS, новый DOS (775), старый Windows, "+", "z", ISO8859P4 и Win1257) кодировками ещё не предел...
...
Рейтинг: 0 / 0
Сменить кодировку базы (опять не получилось)
    #32180949
Фотография Владимир П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поменял 3-й байт в дампе с 0x23 на 0xAB (вводил в FAR через комбинацию ALT+171), сделал импорт в базу, созданную в кодировке CL8MSWIN1251.

Всё получилось, благодарю за советы.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Сменить кодировку базы (опять не получилось)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]