powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблемы с кодировкой при импорте данных
25 сообщений из 26, страница 1 из 2
Проблемы с кодировкой при импорте данных
    #39507317
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет!
Dump файл был сделан на другой операционной системе и в другой кодировке.
На своем компе я установил Oracle и пытаюсь сделать импорт. В результате русские буквы не отображаются.

В логе импорта написано следующее

import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
export client uses CL8ISO8859P5 character set (possible charset conversion)


Скажите, как сделать, чтобы данные вставились нормально?
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507333
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chukis,

NLS_LANG ?
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507336
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,
В настройка БД УКАЗАНО
NLS_CHARACTERSET=WE8MSWIN1252
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507344
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chukis,

Установить переменную среды NLS_LANG перед выполнением импорта.
Но вообще, странно заливать русские буквы в базу с кодировкой WE8MSWIN1252.

И поищите по форуму по WE8MSWIN1252.
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507362
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

Согласен )

В реестре я поменял переменную NLS_LANG на AMERICAN_AMERICA.CL8MSWIN1251
В настройках БД сменил кодировку NLS_CHARACTERSET=CL8MSWIN1251

Попробовал запустить заново импорт после изменений
В логах:
import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
import server uses CL8MSWIN1251 character set (possible charset conversion)
export client uses CL8ISO8859P5 character set (possible charset conversion)

Но русский текст в виде знаков вопросов.
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507366
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Chukis,
Кодировка в базе менялась вот так

connect sys/password as sysdba;
SQLPLUS> shutdown immediate;
SQLPLUS> startup mount;
SQLPLUS> alter system enable restricted session;
SQLPLUS> alter system set job_queue_processes=0;
SQLPLUS> alter system set aq_tm_processes=0;
SQLPLUS> alter database open;
SQLPLUS> UPDATE PROPS$ SET VALUE$='CL8MSWIN1251' WHERE NAME='NLS_CHARACTERSET';
SQLPLUS> shutdown immediate;
SQLPLUS> startup;
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507372
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chukis,

Смена кодировки в базе - это процесс, без которого надо обходиться при любой возможности.
Как я понимаю, Вы можете создать базу заново в нужной кодировке.
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507373
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

Да, могу. На каком этапе задается кодировка?
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507378
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Chukis,

При создании новой БД Oracle устанавливает значение WE8MSWIN1252
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507402
Q.Tarantino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChukisChukis,

При создании новой БД Oracle устанавливает значение WE8MSWIN1252
вот при создании БД и следует указать нужную кодировку.
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507410
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChukisChukis,

При создании новой БД Oracle устанавливает значение WE8MSWIN1252

мож поможет

Проблема при работе с Кириллицей в Oracle

у Вас експорт сделан в кодировке CL8ISO8859P5 из нее наскоко помню преобразование в WE8MSWIN1252 не происходит

кодировки в разных подгруппах (забыл как оно там правильно называется)

Вам надо создать базу с кодировкой (одного подсета) с CL8ISO8859P5

ето само собой CL8ISO8859P5 (и CL8MSWIN1251 ?)


при импорте попробуйте на клиенте указать CL8ISO8859P5

чтоб долго не ждать, можно импортировать одну табличку с русским текстом

ps
может быть и беда, если в файле експорта уже ?????????

pss
доп інфа
Кодировка БД

....
stax
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507411
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChukisВ результате русские буквы не отображаются.

ChukisNLS_CHARACTERSET=WE8MSWIN1252

Это весьма логично, поскольку в Win1252 НЕТ русских букв от слова "вообще".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507426
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЭто весьма логично, поскольку в Win1252 НЕТ русских букв от слова "вообще".

наскоко помню, русские буквы (8бит) будут нормально сохранятся в базе,
проблемы будут с перекодировкой напр в CL8MSWIN1251

но если на клиенте и в базе выставить WE8MSWIN1252, то русские будут сохранятся в БД

давно было (с формсом народ мучился), счас проверить у меня нет возможности

.....
stax
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507475
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chukis,

автор
Код: plsql
1.
import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set



Если у тебя исходная база имела любую другую кодировку, кроме WE8MSWIN1252
то у тебя нет в dump русских данных (там уже вопросы)

Причина: нет однозначного отображения множества
WE8MSWIN1252 -> на любую русскую кодировку

Шанс есть, если база имела такую же кодировку WE8MSWIN1252, в этом случае данные не конвертируются и передаются напрямую, то есть русские данные попадают в базу в неизменном виде.

Запрос:
Код: plsql
1.
select PARAMETER||'='||VALUE as info from nls_database_parameters where parameter='NLS_CHARACTERSET';


Поможет определить какая кодировка используется для хранения в файла БД.

Если исходная база не доступна, необходимо определить в какой именно кодировке в exp файле сохранились данные. например:

FAR -> F3 (view) -> ShitF8 (выбор кодировки для отображения)

Если русские буквы есть (видны в файле), и ты определил кодировку
То можно хакнуть заголовок exp файла (Привести его кодировку к фактической)
Первые три байта - это:
Код: plsql
1.
2.
00: <сигнатура>
01 02:  код кодировки



Получаем нужный код кодировки:

устанавливаем:
Код: plsql
1.
NLS_LANG=.<КОДИРОВКА EXP ФАЙЛА>



Получаем тестовый exp файл, на ошибки не обращаем внимание, бо нам нужны только первые три байта

Код: plsql
1.
exp userid=/ rows=N tables=tab file=test




осталось в бинарном редакторе заменить 2 и 3 байт в битом exp файле на правильные как в
полученном тестовом файле
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507478
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chukis,

И да, новая база должна иметь русскую кодировку!
И на клиентах должен быть установлен русский NLS_LANG
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507779
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем, БД пустую пересоздал и при создании задал нормальную кодировку. После импорта в таблицах данные на русском отображаются. А вот комментарии к полям и текст комментариев в пакетах - нет, все-равно знаки вопросов.
Пока терпимо ) Если дадите совет как и это исправить - буду признателен.

И еще, при импорте возможно 3 варианта - вся БД, выбранные таблицы или схема. У меня в дампе есть очень большие таблицы логов в одной из схем, которые мне нафиг не нужны, а они восстанавливаются по 3-4 часа. Есть способ задать исключения таблиц для вставки данных?
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507785
trace.log
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Chukis,

В доке:
Код: sql
1.
imp TABLES=(jones.accts, scott.emp, scott.dept)
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507826
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изначально база работала на AIX, соответсвтенно и выгрузка в кодировке
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507827
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выгрузка в кодировке iso-8859-5 (CL8ISO8859P5).
Теперь же БД развернута на Windows Server english

И да, для работы с базой используется Oracle Forms. Хоть русский текст теперь и стал отображаться в таблицах (при создании БД в кодировке CL8MSWIN1251) Oracle Forms не сохраняет данные и предупреждения у него вида ?????? ??? ????????? на те поля где должен быть русский текст
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507830
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChukisOracle Forms не сохраняет данные и предупреждения у него вида ?????? ??? ?????????

NLS_LANG настрой правильно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507831
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chukis,

формс знает(помнит) в какой кодировке сгенерирован fmx (можно посмотреть любым редакторм)
если есть исходки (fmb) можно попробовать перегенерить в нужной кодировке

если исходки (fmb) в WE8MSWIN1252
то у Вас может быть проблема с WE8MSWIN1252 в CL8MSWIN1251

.....
stax
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507845
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chukis,

Все дружно ринулись на NLS_LANG даже не спросив какой импорт - original import (client side utility imp) или datapump import (server side utility impdp). Datapump к NLS_LANG никакого отношения не имеет.

SY.
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507864
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SY,
Точняк
Импорт выполняю через imp.exe. Oracle 9.2.0.8.
Версии БД совпадает с той, в которой был импорт сделан
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507868
User_ora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Там проблема в том, что в AIX кодировка Big Endian а в Windows Little Endian.
https://docs.oracle.com/cd/B19306_01/backup.102/b14191/dbxptrn.htm#CHDCCDAE
...
Рейтинг: 0 / 0
Проблемы с кодировкой при импорте данных
    #39507931
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
User_ora,
слышал звон...
exp/imp - не зависят от кодировки

What is the Export Utility?

Oracle Doc - Database Utilities - Original Export...
The Export utility provides a simple way for you to transfer data objects between Oracle databases, even if they reside on platforms with different hardware and software configurations.
...
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблемы с кодировкой при импорте данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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