UTF8 импорт данных из текстовых файлов

Петров Андрей
Дата: 07.11.2008 10:58:52
Следующая ситуевина - делается миграция из информикса на 10 оракл. Выгрузки делаются потаблично в текстовые файлы и далее идет загрузка в таблицы с дальнейшей обработкой.

На клиенте стоят греческие региональные настройки и при загрузке данных имеем кракозябры в текстовых полях... Есть у кого идеи?

Импорт делается через SQL loader.

Нужно шаманить с кодовой страницей в реестре или как быть?
andrey_anonymous
Дата: 07.11.2008 11:02:46
Просто укажите в управляющем файле sql*loader кодировку, в которой выгружены текстовые файлы.
Не забудьте убедиться, что CHARACTERSET базы данных поддерживает нужный язык.
Петров Андрей
Дата: 07.11.2008 11:12:49
А как проверить?

Select dp.Value Into fCharSet From nls_database_parameters dp Where dp.parameter = 'NLS_CHARACTERSET';

дает AL32UTF8
andrey_anonymous
Дата: 07.11.2008 11:17:21
select * from nls_database_parameters where parameter in ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');
 
PARAMETER                      VALUE
------------------------------ --------------------------------------------------------------------------------
NLS_CHARACTERSET               UTF8      -- атрибуты типов char, varchar, varchar2 и т.д.
NLS_NCHAR_CHARACTERSET         AL16UTF16 -- атрибуты типов nchar, nvarchar, nvarchar2 и т.д.

AL32UTF8 - годится.
Петров Андрей
Дата: 07.11.2008 11:19:12
Теперь бы еще понять какая кодировка была в информиксе. :-) Похоже греческая...

Ладно спасибо.
andrey_anonymous
Дата: 07.11.2008 11:28:09
Петров Андрей
Теперь бы еще понять какая кодировка была в информиксе. :-) Похоже греческая...

Это неважно.
Важно, в какой кодировке данные в файлах лежат (можете ли увидеть нужный язык хоть в какой-нибудь кодировке, просматривая текстовик правильным вьюером в разных кодировках...)
den-den
Дата: 07.11.2008 11:39:29
CONVERT попробуй использовать.
Например, исходный файл был в кодировке UTF8. Преобразуем строку в кодировку базы данных

l_out_string := CONVERT (l_out_string, 'CL8ISO8859P5', 'UTF8');
Петров Андрей
Дата: 10.11.2008 17:23:56
А скажите как бы мне все же найти локаль греков?
Пробую использовать вот такие варианты:
EL8ISO8859P7
и предложенный здесь:
CL8ISO8859P5

Как опеределить какой правильный не имея на руках данных для проверки к сожалению...
wildwind
Дата: 10.11.2008 19:52:49
Петров Андрей
А скажите как бы мне все же найти локаль греков?
Пробую использовать вот такие варианты:
EL8ISO8859P7
и предложенный здесь:
CL8ISO8859P5


еще варианты
andrey_anonymous
Дата: 11.11.2008 11:09:20
Петров Андрей, а для зачем Вам, собственно, локаль греков? Вы греческие данные гоните или где?
Если русскоязычные - выбирайте из русскоязычных кодировок. Русские символы принципиально не могут быть представлены в греческой кодировке, если Вы понимаете что я имею ввиду.