|
|
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
Добрый день. Есть БД 11.2.0.3 с кодировкой Cl8NSWIN1251, в ней содержатся данные на русском и английском языке. Запускается ETL-процесс, переносящий некоторые данные в другую схему той же БД. После отработки ETL-процесса в новой схеме получаем кракозябры вместо русских символов. Если во время работы етл-процесса выставить NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251, то в кракозябрах преобладают знаки вопросов. Если выставить NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251, то в кракозябрах преобладают символы типа A?A?A?A«A?A¤A?A?A?A°A?A?A?A? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 11:16 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 11:17 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
sec0nd, а попробуй из cmd C:\>SET NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251 C:\>chcp 1251 C:\>sqlplus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 11:27 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, у меня линукс. Попробовал из консоли, результат тот же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 11:30 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
sec0nd, Чтобы ни у кого не было сомнений, покажи результат запроса Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 11:33 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
AmKad, Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 11:37 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
Думаю попробовать в UTF-8 теперь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 11:38 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
sec0nd, А теперь давай посмотрим на данные исходной схемы. Можешь привести скриншоты своего SQL Developer-а, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 11:41 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
sec0ndMaximaXXL, у меня линукс. Попробовал из консоли, результат тот же. Код: plsql 1. Фонт? преобразование в ssh? текущие установки сессии unix: locale Что покажет ascii таблица Код: plsql 1. SQL.ru -> FAQ -> Oracle -> CodePage, NLS_LANG: решение проблем с отображением сообщений на русском языке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 11:41 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
sec0ndЗапускается ETL-процесс Подробнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 11:45 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
AmKadsec0nd, А теперь давай посмотрим на данные исходной схемы. Можешь привести скриншоты своего SQL Developer-а, например. Скриншонты чего именно? Результатов запросов, возвращающих данные на русском языке? Да, забыл добавить важную деталь - после отработки етл-процесса часть русских данных попадает в новую схему нормально, а часть - кракозябрами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 11:46 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
Vadim Lejnin, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 11:47 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
sec0ndРезультатов запросов, возвращающих данные на русском языке?Да, ты верно меня понял.sec0ndДа, забыл добавить важную деталь - после отработки етл-процесса часть русских данных попадает в новую схему нормально, а часть - кракозябрами.Но в контексте горячих новостей, похоже, это теряет смысл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 11:48 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
envsec0ndЗапускается ETL-процесс Подробнее Подробнее не могу. Етл-процесс оракловый, не самописный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 11:49 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
А еще проблема в том, что etl-процесс огроменный, и найти процедуру(ры), вставляющие данные именно в эти кракозябные таблицы не представляется возможным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 11:52 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
sec0ndА еще проблема в том, что etl-процесс огроменный, и найти процедуру(ры), вставляющие данные именно в эти кракозябные таблицы не представляется возможным.Ну и забей тогда. Пусть работает как работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 11:55 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
Вот еще что заметил: те запросы, которые в sql developer возвращают нормальные русские символы, через sql plus возвращают вот что: Етл-процесс как раз использует sqlplus для передачи данных. Получается, у меня с sqlplus что-то не так? Что может на него влиять кроме locale и NLS_LANG? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 11:58 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
Vadim Lejnin, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 12:00 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
sec0ndВот еще что заметил: те запросы, которые в sql developer возвращают нормальные русские символы, через sql plus возвращают вот что: Етл-процесс как раз использует sqlplus для передачи данных. Получается, у меня с sqlplus что-то не так? Что может на него влиять кроме locale и NLS_LANG? Изменил кодировку в настройках ssh-клиента, теперь в консоли русские данные тоже отображаются нормально. Неужели кривая кодировка ssh-клиента может влиять на формат данных в етл-процессе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 12:03 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
sec0ndЕтл-процесс оракловый, не самописный. sec0ndЕтл-процесс как раз использует sqlplus для передачи данных. sec0ndetl-процесс огроменный Какой инструмент используется для создания и запуска etl-процесса? sec0ndНеужели кривая кодировка ssh-клиента может влиять на формат данных в етл-процессе А если подумать головой? У тебя судя по обрывкам описания процесса так или иначе используется файловая система. В которорую одна часть процесса с каким-то своим env пишет, а потом sqlplus со своим env это читает и пишет в базу. Дай-ка подумать, что тут может быть не так с кодировками, если у тебя файл пишется на *nix, где дефолт обычно юникод, а потом оттуда читается в базу с cp1251 с хрен знает какой интерпретацией кодировки входных данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 12:12 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
envА если подумать головой? У тебя судя по обрывкам описания процесса так или иначе используется файловая система. В которорую одна часть процесса с каким-то своим env пишет, а потом sqlplus со своим env это читает и пишет в базу. Дай-ка подумать, что тут может быть не так с кодировками, если у тебя файл пишется на *nix, где дефолт обычно юникод, а потом оттуда читается в базу с cp1251 с хрен знает какой интерпретацией кодировки входных данных? Уже понял, запустил етл-процесс и жду результатов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 12:24 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
sec0ndА еще проблема в том, что etl-процесс огроменный, и найти процедуру(ры), вставляющие данные именно в эти кракозябные таблицы не представляется возможным. ETL работает скорее всего на java в UTF8 настройка может быть где-то внутри кишок (как правило в виде параметров запуска java) Либо браться из настроек системы не надо ему мешать, настрой окружение на en_US.UTF8 для sqlplus в консоле настрой NLS_LANG=AMERICAN_AMERICA.UTF8 и попробуй выполни запрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 12:31 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
Vadim Lejninsec0ndА еще проблема в том, что etl-процесс огроменный, и найти процедуру(ры), вставляющие данные именно в эти кракозябные таблицы не представляется возможным. ETL работает скорее всего на java в UTF8 настройка может быть где-то внутри кишок (как правило в виде параметров запуска java) Либо браться из настроек системы не надо ему мешать, настрой окружение на en_US.UTF8 для sqlplus в консоле настрой NLS_LANG=AMERICAN_AMERICA.UTF8 и попробуй выполни запрос Такое окружение было в самом начале. Не взлетело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 13:30 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
envКакой инструмент используется для создания и запуска etl-процесса? sh-ник ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 14:21 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
sec0nd, Что запускает shell script Как настраивал NLS? Может export переменной не сделал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 15:24 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
Vadim Lejninsec0nd, Что запускает shell script Как настраивал NLS? Может export переменной не сделал Shell-скрипт задает переменные java, коннект к БД, а потом дергает sql скрипты по списку. NLS настраивал export NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251 (ну пробовал и RUSSIAN_CIS.CL8MSWIN1251) В старых версиях этого всегда хватало. А в новой версии не работает... При этом, тот факт что в конечную схему данные попадают в некоторые таблицы в нормальном виде, а в другие таблицы кракозябрами, заставляет меня задуматься о том, что новая версия криво адаптирована под RU. Сейчас опять установил английскую локаль в ОС и создал БД с кодировкой UTF-8 Если не взлетит, значит не судьба ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 15:33 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
sec0nd, Может всё-таки уже назовёшь свой "не самописный" ETL-инструмент который запускается sh-скриптом с явным прописыванием локалей и строк соединения? Заодно проверь, что все запускается от одного пользователя с одним .profile, нет явных sudo su -l и подобного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 16:01 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
sec0ndпопадают в некоторые таблицы в нормальном виде ddl таблиц заодно проверь, может у тебя там и так unicode ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 16:03 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
Как правило Java-приложения через JDBC работают всегда в юникоде независимо от NLS_LANG ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 16:03 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
envsec0nd, Может всё-таки уже назовёшь свой "не самописный" ETL-инструмент который запускается sh-скриптом с явным прописыванием локалей и строк соединения? Заодно проверь, что все запускается от одного пользователя с одним .profile, нет явных sudo su -l и подобного. Ок, это staretl. Продукт из категории Primavera P6 Analytics. Сейчас я пытаюсь понять следующее: почему при запуске конфигуратора star окно gui показывает мне нормальные русские символы, но при прохождении конфигуратора в конфиге появляются кракозябры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 16:14 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
Выше я показал как это выглядит в конфигураторе. А вот так выглядит потом в файле properties: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 16:15 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
При этом я пробовал английску и русскую локаль в системе, и для каждой из них пробовал NLS_LANG RUSSIAN_CIS.CL8MSWIN1251 и AMERICAN_AMERICA.CL8MSWIN1251 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 16:17 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
Это проблемы приложения Если JDBC с БД работает через юникод (и подвергается NLS-конвертации), то это не значит, что он плюет на LANG, LC_ALL и все остальное при работе с локальными файлами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 16:20 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
А в UTF-8 файл properties выглядит нормально... И почему же он тогда в БД кракозябрами попадает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 16:20 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровЭто проблемы приложения Если JDBC с БД работает через юникод (и подвергается NLS-конвертации), то это не значит, что он плюет на LANG, LC_ALL и все остальное при работе с локальными файлами Не совсем понятно почему это тогда проблема приложения? По вашим словам получается, что это проблема окружения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 16:23 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
Ну можно и так назвать -- проблема приложения в окружении ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 16:26 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
sec0nd, А источником данных для ETL что является и как туда настроен доступ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 16:48 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
envsec0nd, А источником данных для ETL что является и как туда настроен доступ? Исходная схема в той же БД. Доступ настроен также через конфигуратор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 16:50 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
sec0nd, Т.е. сначала оно выгружается по варианту cp1251 => utf8, а потом пытается впихнуть это в cp1251? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 16:53 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
Тут если и проблема, то в первой перекодировке Потому как юникод JDBC вполне себе нормально перетранслируется в кодировку БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 16:56 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
envsec0nd, Т.е. сначала оно выгружается по варианту cp1251 => utf8, а потом пытается впихнуть это в cp1251? Не знаю. Вообще в руководстве написано что БД должны иметь одинаковую кодировку. Это как бы намекает на то, что никакой трансформации кодировки не делается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 17:04 |
|
||
|
Проблема с кодировкой при передаче данных
|
|||
|---|---|---|---|
|
#18+
sec0nd, Одинаковую кодировку должны иметь хранилище примаверы и база её репозитория. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2017, 17:15 |
|
||
|
|

start [/forum/topic.php?all=1&fid=52&tid=1885884]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
213ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
93ms |
get tp. blocked users: |
2ms |
| others: | 227ms |
| total: | 586ms |

| 0 / 0 |
