2012-04-23 2 views
0

с использованием jdbc (jt400) для вставки данных в таблицу as400. db таблица кодовая страница - 424. Host Code Page 424AS400 преобразование символов jdbc

Кодовая страница ebcdic 424 не поддерживает многие символы, которые могут быть получены от клиента. например знак (Ascii 26 Hex 1A)

результат неправильный перевод.

Есть ли какой-либо встроенный способ в панели инструментов, чтобы удалить любой из неподдерживаемых символов?

ответ

0

Вы можете попытаться создать логический файл по вашему физическому файлу ccsid424 с другой кодовой страницей. В качестве/400 можно создать логические файлы с разными кодовыми страницами для отдельных столбцов, добавив ключевое слово CCSID(<num>). Вы даже можете установить его в кодировку Unicode, например. CCSID(1200) для UTF-16. Конечно, ваш физический файл будет по-прежнему иметь возможность хранить символы, которые находятся в кодовой странице 424, и они будут заменены некоторым недопустимым символьным символом, но перевод может быть лучше.

Там нет никакого способа, чтобы хранить символы, которые не в кодировке 424 в колонке с этой кодовой страницы непосредственно (единственный способ, которым я могу думать кодирует их каким-то образом с несколькими символов, но это, скорее всего, не, что вы хотите сделать, так как это вызовет больше проблем, чем «решает»).

Если у вас есть контроль над этой системой, и вы можете сделать некоторые большие изменения, вы можете сделать это наоборот: создать новую версию этого файла в формате Unicode с другим именем (я бы предложил CCSID (1200), это как можно ближе к UTF-16 в качестве/400 afaik, а UTF-8 не поддерживается всеми компонентами системы в моем опыте. IBM рекомендует 1200 для unicode). Затем переместите все данные из старого файла в новый, удалите старый (до этого, резервную копию!), а затем создайте логический файл поверх нового физического имени с именем старого физического файла. В этом логическом файле изменяются все столбцы ccsid-bearing от 1200 до 424. Таким образом, существующие данные могут все еще работать с данными. Конечно, в логическом файле теперь будут недопустимые символы, как только вы введете данные, которые не находятся в подмножестве ccsid 424; поэтому вам, скорее всего, придется взглянуть на все программы, которые используют новый логический файл.

Смежные вопросы