- FAQ по ORACLE
- Проблемы кодировки
- Вопрос: Подскажите, как получить в Oracle список всех первичных ключей в виде: [id_column], [id_table]
- Вопрос:Как правильно выбрать кодовую страницу при инсталляции?
- Вопрос:Как можно решить проблемы, связанные с неверно заданной кодовой страницей?
- Перекодировка с windows-1251 в utf-8
- A Supported Character Sets
- A.1 Supported Character Sets — Oracle
FAQ по ORACLE
Проблемы кодировки
Вопрос: Подскажите, как получить в Oracle список всех первичных ключей в виде: [id_column], [id_table]
Ответ: select col.column_name,con.table_name from user_constraints con,user_cons_columns col where col.constraint_name=con.constraint_name and con.constraint_type=’P’;
Это будет поименный перечень. Идентификаторы таблиц можно взять из user_tables, а столбцов — из user_tab_columns.
Вопрос:Как правильно выбрать кодовую страницу при инсталляции?
Ответ: Cпособы корректной установки поддержки национальных кодировок и стандартов в продуктах Oraclе обсуждались в статье С. Мосина [Oracle Magazine/Russian Edition номер 1 за лето 1996]
При инсталляции необходимо выбирать «Русский», даже если это пробная установка.
Однако часто еще встречаются СУБД Oracle с установленной CHARSET=WE8ISO8859P1 по умолчанию. Иногда это делается по незнанию, чаще с мыслью, что эта инсталляция временна, никогда не поздно будет изменить; а некоторые версии, например, распространявшаяся через Интернет trial версия Personal Oracle for Windows 3.1, не имели локальных кодировок.
Когда при этом реально возникают проблемы:
- когда система переносится на платформу с другой основной кодировкой,
- когда необходимо реэкспортировать в такую систему несколько таблиц с другой кодировкой,
- неудобства типа невозможности перевода в другой регистр русских ‘Ч’ и ‘Я’ (временно можно корректировать написанием локализованных версий функций RLOWER() и RUPPER()).
К сожалению Oracle Corp. не предусмотрела легальных (документированных) способов изменения кодировок СУБД и приложений
Вопрос:Как можно решить проблемы, связанные с неверно заданной кодовой страницей?
Ответ:
- Изменение DATABASE CHARSET
Перекодировки данных здесь не происходит, изменяется только пометка для Oracle. Вы должны точно представлять в какой кодировке ваши данные находятся.
Прежде, чем использовать этот метод проверьте, присутствует ли необходимая вам кодировка в списке допустимых :
SQL> select value from V$NLS_VALID_VALUES
Текущие установки NLS БД можно просмотреть используя view NLS_DATABASE_PARAMETERS. Что представляет из себя это view?
SQL> select text from dba_views where view_name=’NLS_DATABASE_PARAMETERS’;
substr(value$, 1, 30)
where name like ‘NLS%’
PROPS$ — это fixed table, где хранится информация об NLS и не только. Несмотря на термин fixed на многих версиях Oracle позволяет производить UPDATE над ней (хотя не во всех — какие-то версии Personal Oracle не допускают этого). Допустим Вы имеете WE8ISO8859P1, а Вам нужно CL8MSWIN1251.
SQL> select * from props$ where name=’NLS_CHARACTERSET’;
NAME VALUE$ COMMENT$
NLS_CHARACTERSET WE8ISO8859P1 Character set
SQL> update props$ set VALUE$=’CL8MSWIN1251′ where name=’NLS_CHARACTERSET’;
- row updated.
SQL> select * from props$ where name like ‘NLS_CHARACTERSET’;
NAME VALUE$ COMMENT$
NLS_CHARACTERSET CL8MSWIN1251 Character set
И после этого остается только поменять переменную среды NLS_LANG на сервере и клиентах и спокойно наслаждаться видом неизвращенных «Я» и «Ч» как больших так и маленьких.
Использование Export — Import
Как решить проблемы, возникающие при осуществлении экспорта в системе с кодировкой WE8ISO8859P1, а импорта на системе с русской кодировкой?
Использование параметра CHARSET применимо для импорта данных из версий ранее 7 (Oracle 5, 6). Экспортный файл версии 7 содержит в себе информацию о кодировке данных, из-за чего и возникают проблемы. Как же этого избежать?
Ответ заключается всего в одном байте экспортного файла, а именно — в третьем (точнее в двух байтах – втором и третьем, но в наших случаях второй байт равен 0x00), где и находится идентификатор CHARSET.
Таблица . Идентификаторы CHARSET.
Кодировка | CS_ID(hex) | CS_ID(dec) | NLS RTL 3.1 Windows | NLS RTL 3.2 Windows | модуль из libnlsrtl.a * |
US7ASCII | 0x01 | 1 | lx20001.d | lx20001.nlb | lic001.o |
WE8ISO8859P1 | 0x1F | 31 | x2001F.d | lx2001F.nlb | lic031.o |
CL8ISO8859P5 | 0x23 | 35 | lx20023.d | lx20023.nlb | lic035.o |
RU8PC866 | 0x98 | 152 | lx20098.d | lx20098.nlb | lic152.o |
RU8BESTA | 0x99 | 153 | lx20099.d | lx20099.nlb | lic153.o |
RU8PC855 | 0x9B | 155 | lx2009B.d | lx2009B.nlb | lic155.o |
CL8MACCYRILLIC | 0x9E | 158 | lx2009E.d | lx2009E.nlb | lic158.o |
CL8MACCYRILLICS | 0x9F | 159 | lx2009F.d | lx2009F.nlb | lic159.o |
CL8MSWIN1251 | 0xAB | 171 | lx200AB.d | lx200AB.nlb | lic171.o |
CL8EBCDIC1025 | 0xB9 | 185 | lx200B9.d | lx200B9.nlb | lic185.o |
CL8EBCDIC1025X | 0xBA | 186 | lx200BA.d | lx200BA.nlb | |
CL8BS2000 | 0Xeb | 235 | lx200EB.d | lx200EB.nlb | lic235.o |
*- для Oracle 7.1.4 SCO Unix (в других версиях может отличаться)
Необходимо изменить этот байт с помощью любого шестнадцатеричного редактора.
Советы Игоря Филимонова ЛАСУ ТРИНИТИ, г. Троицк (Oracle Club)
Описанные методы применялись на версиях 7.1.4 — 7.2.2 для Windows 95, Windows NT, SCO Unix и.oracle 7.3 для HP/UX. Перед их использованием сделайте full export (backup).
За дополнительной информацией обращайтесь в компанию Interface Ltd.
Перекодировка с windows-1251 в utf-8
Apache : перекодировка windows-1251-> unicode/utf-8
Проблема такого плана, необходимо средствами сервера заставить перекодировать ‘на лету’ файлы.
Перекодировка из utf в windows-1251. Удаление спец. символов.
Необходимо сформировать xml файл в кодировке windows-1251. Даные для этого xml поступают из БД в.
Перекодировка строки win-1251 в кодировку utf-8
Помогите пожалуйста! есть проблема перекодировки строки win-1251 в кодировку utf-8. Может есть.
Как создать рабочий XML в UTF-8? У меня исправно создаётся Windows-1251, но с UTF-8 проблема
Доброго дня, форумчане. Подскажите, что делать, чтобы создавался и открывался без ошибок.
Слишком расплывчатая задача.
Исходные данные у вас в каком виде?
Столбец в таблице, файл на диске, бинарный BLOB, а может CLOB ?
Какой объем данных для конвертации? Для строки одни способы годятся, для CLOB — другие.
Кодировка самой базы какая ?
В простейшем случае, если база в windows-1251, то вообще уже готовая функция канает:
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.
Перекодировка строки в Windows-1251
Формирую QR-код через dll которую 1С используют в типовых решениях (БГУ и проч). Загоняю строку в.
Перекодировка из КОИ-8 в Windows 1251
Разработать программу перекодировки текстовых файлов из кодового набора КОИ-8 в кодовый набор.
UTF-16 -> cp-1251(windows-1251)
У меня есть кириллическая строка UTF-16, которая выглядит как Хотелось бы конвертнуть её в.
Перекодировка из OEM-866 в Windows-1251
написан батник, результат каждой команды он выводит в лог так: 1>>%
dp0\log.txt 2>>&1 понятно.
UTF-8 to WINDOWS-1251
Здравствуйте! Надо вот чего. Есть строка в UTF-8. После перекодировки функцией `UTF8ToString`.
из UTF-8 в Windows-1251
Как строку в формате UTF-8 перекодировать в Windows-1251? Добавлено через 16 минут Существуют.
A Supported Character Sets
This appendix lists the character sets that Oracle GoldenGate supports when converting data from source to target.
The identifiers that are shown should be used for Oracle GoldenGate parameters or commands when a character set must be specified, instead of the actual character set name. Currently Oracle GoldenGate does not provide a facility to specify the database-specific character set.
This appendix includes the following sections:
A.1 Supported Character Sets — Oracle
Table A-1 Supported Oracle Character Sets
Identifier to use in parameter files and commands | Character Set |
---|---|