Как преобразовать данные с разными кодировками в другие базы данных? - PullRequest
0 голосов
/ 28 марта 2011

привет мы хотим использовать ссылку на базу данных для подключения базы данных для работы с командами выбора, обновления или ..., нашей целевой базой данных является WE8ISO8859P1, а текущей базой данных является AR8MSWIN1256 cahrset, но когда мы используем команду для просмотра данных, все неанглийские символы отображаются нечетно, что мы не можем распознать появившийся текст, также, если мы используем функцию конвертации, никакие изменения не будут внесены, пожалуйста, помогите нам просмотреть правильные символы с нашей ссылкой на базу данных. спасибо

не работает с основанием новообращенного

выберите конвертировать (имя_меню, 'US7ASCII', 'WE8ISO8859P1'), конвертировать (menu_name, 'ar8mswin1256', 'WE8ISO8859P1'), convert ((convert (имя_меню, 'US7ASCII', 'WE8ISO8859P 1')), 'ar8mswin1256', 'WE8ISO8859P1'), menu_name от T $ R_MENU @ "TO201.US.ORACLE.COM" ГДЕ МЕНЮ_ID = 601011;

результат EU? IY? C? ICa? OCOaI? E ???? ? С? IC ?? ? C ?? я? EU? IY? C? ICa? OCOaI? E ???? ? С? IC ?? ? C ?? я?

1 Ответ

1 голос
/ 28 марта 2011

В большинстве случаев при запросах к базе данных Oracle вам не нужна функция для преобразования данных из одного набора символов в другой: это делается автоматически. Клиент, запрашивающий данные, преобразует строки в любой набор символов, который он использует.

В вашем случае вам не хватает неанглийских символов, потому что они не существуют в WE8ISO8859P1!

Вы можете использовать NVARCHAR2 вместо VARCHAR2 в вашей целевой базе данных для поддержки символов Юникода. NVARCHAR2 специально разработан для обработки таких строк без изменения набора символов базы данных. См. этот вопрос SO о различиях между VARCHAR2 и NVARCHAR2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...