Создание кодировки
Функция
Определение оператора создания в БД новой кодировки.
Спецификация
::=
[WINDOWS_CODE код Windows-кодировки]
[{NONEUC [WIDTH значение]} | EUC | UTF8]
[[PLAN номер плана] PAGE номер страницы]
EXTERNAL (тело кодовой таблицы)
::=
::=
::=
::=
Синтаксические правила
-
Опция
OR REPLACE
заставляет удалять существующую в БД кодовую таблицу и создавать её под тем же именем, но с другими параметрами. -
Опция
IF NOT EXISTS
отменяет выполнение оператора, если указанная кодовая таблица уже существует в БД. -
Одновременное использование опций
IF NOT EXISTS
иOR REPLACE
запрещено. -
Опции
< номер плана >
и< номер страницы >
используются только при задании MBCS-кодировок. -
< Тело кодовой таблицы >
– массив из 1536 байт. Для однобайтовой кодировки включает в себя следующие массивы:CTYPE
(512 байт),CASE
(256 байт),WEIGHTS
(256 байт),TO_UNICODE
(512 байт):-
CTYPE
– имеет смысл только для однобайтовых кодировок и представляет собой массив свойств символов кодировки (пример свойств символа – число, буква или знак; в верхнем/нижнем регистре и т.п.); -
CASE
– имеет смысл только для однобайтовых кодировок и представляет собой массив преобразований символов в верхний/нижний регистр; -
WEIGHTS
– имеет смысл только для однобайтовых кодировок и представляет собой массив весов символов кодировки; -
TO_UNICODE
– имеет смысл только для однобайтовых кодировок и представляет собой таблицу преобразования символов кодировки в UNICODE-символы (массивы для обратного преобразования из кодировки вUNICODE
автоматически создаются на этапе загрузки кодировки).
-
-
Для MBCS-кодировки можно указывать следующие типы кодировок:
-
EUC (по умолчанию) (примеры подобных кодировок: SHIFTJIS, JIS0208, JIS0201, HANGUL, JOHAB, KSC5601, BIG5. В ОС MS DOS: кодировки: 932, 936, 949, 950);
-
NONEUC – кодировка не совместима с EUC-овскими (примеры подобных кодировок: GB 2312-80, GB 12345-90, GB 7589-87, GB 7590-87, GB 8565-89, JIS0212, KSX1001, CNS11643);
-
UTF8 – UTF-8 представление символов.
-
-
Опции
PLAN
иPAGE
задают, соответственно, номер плана и номер страницы для CNS11643-кодировки и обобщенной GB-кодировки, состоящей из GB 2312-80, GB 12345-90, GB 7589-87, GB 7590-87, GB 8565-89. ЕслиPLAN
не указан, считается, что он равен нулю. -
Опция
WINDOWS_CODE
задает номер кодовой страницы для Windows-платформ.
Примечание
После создания БД в обычном режиме по умолчанию задана кодировка, использующая таблицу из 127 символов. Существует возможность изменить кодировку по умолчанию для всей БД (см. пункт «Кодировка соединения по умолчанию»).
Пример
Создание однобайтовой кодировки:
CREATE CHARACTER SET CP866 WINDOWS_CODE 866 EXTERNAL( hex('200020002000200020002000200020002000280028002800280028002000200020 00200020002000200020002000200020002000200020002800280028002800080010001 00010001000100010001000100010001000100010001000100010000400040004000400 04000400040004000400040010001000100010001000100010000101010101010101010 10101010101010101010101010101010101010101010101010101010101010101010101 01010101010101100010001000100010001000020102010201020102010201020102010 20102010201020102010201020102010201020102010201020102010201020102010201 10001000100010002000010101010101010101010101010101010101010101010101010 10101010101010101010101010101010101010101010101010101010101010101010101 01010102010201020102010201020102010201020102010201020102010201020102011 00010001000100010001000100010001000100010001000100010001000100010001000 10001000100010001000100010001000100010001000100010001000100010001000100 01000100010001000100010001000100010001000100010000201020102010201020102 01020102010201020102010201020102010201020101010201010102010101020101010 20110001000100010001000100010000800'), hex('000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20 2122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F406162636 465666768696A6B6C6D6E6F707172737475767778797A5B5C5D5E5F6041424344454647 48494A4B4C4D4E4F505152535455565758595A7B7C7D7E7FA0A1A2A3A4A5A6A7A8A9AAA BACADAEAFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF808182838485868788898A8B8C8D8E 8FB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D 2D3D4D5D6D7D8D9DADBDCDDDEDF909192939495969798999A9B9C9D9E9FF1F0F3F2F5F4 F7F6F8F9FAFBFCFDFEFF'), hex('000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20 2122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434 445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F6061626364656667 68696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8 B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAE AFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D 2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5 F6F7F8F9FAFBFCFDFEFF'), hex('00000100020003000400050006000700080009000A000B000C000D000E000F0010 001100120013001400150016001700180019001A001B001C001D001E001F00200021002 20023002400250026002700280029002A002B002C002D002E002F003000310032003300 3400350036003700380039003A003B003C003D003E003F0040004100420043004400450 046004700480049004A004B004C004D004E004F00500051005200530054005500560057 00580059005A005B005C005D005E005F006000610062006300640065006600670068006 9006A006B006C006D006E006F0070007100720073007400750076007700780079007A00 7B007C007D007E007F0010041104120413041404150416041704180419041A041B041C0 41D041E041F0420042104220423042404250426042704280429042A042B042C042D042E 042F0430043104320433043404350436043704380439043A043B043C043D043E043F049 125922593250225242561256225562555256325512557255D255C255B25102514253425 2C251C2500253C255E255F255A25542569256625602550256C256725682564256525592 55825522553256B256A2518250C25882584258C25902580254004410442044304440445 0446044704480449044A044B044C044D044E044F040104510404045404070457040E045 E04B0001922B7001A221621A400A025A000') );
Примечание
При копировании примера для выполнения необходимо удалить символы перевода строки.