Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблемы с кодировкой при импорте данных / 25 сообщений из 26, страница 1 из 2
18.08.2017, 10:02
    #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
18.08.2017, 10:15
    #39507333
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с кодировкой при импорте данных
Chukis,

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

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

И поищите по форуму по WE8MSWIN1252.
...
Рейтинг: 0 / 0
18.08.2017, 10:51
    #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
18.08.2017, 10:58
    #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
18.08.2017, 11:04
    #39507372
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с кодировкой при импорте данных
Chukis,

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

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

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

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

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

мож поможет

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

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

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

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

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


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

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

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

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

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

ChukisNLS_CHARACTERSET=WE8MSWIN1252

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

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

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

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

.....
stax
...
Рейтинг: 0 / 0
18.08.2017, 12:33
    #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
18.08.2017, 12:34
    #39507478
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с кодировкой при импорте данных
Chukis,

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

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

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

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

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

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

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

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

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

SY.
...
Рейтинг: 0 / 0
19.08.2017, 16:35
    #39507864
Chukis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с кодировкой при импорте данных
SY,
Точняк
Импорт выполняю через imp.exe. Oracle 9.2.0.8.
Версии БД совпадает с той, в которой был импорт сделан
...
Рейтинг: 0 / 0
19.08.2017, 16:43
    #39507868
User_ora
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с кодировкой при импорте данных
Там проблема в том, что в AIX кодировка Big Endian а в Windows Little Endian.
https://docs.oracle.com/cd/B19306_01/backup.102/b14191/dbxptrn.htm#CHDCCDAE
...
Рейтинг: 0 / 0
20.08.2017, 00:15
    #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
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблемы с кодировкой при импорте данных / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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