Unicode е един от най-влиятелните и мощни стандарти за кодиране в света на разработката. Unicode представя знаци от почти всички езици чрез кодиране на знаците в целочислен код между 0 и 0x10ffff.
Поради гъвкавостта на базите данни, от време на време ще се окажете, че конвертирате низ в неговото Unicode представяне.
В този урок ще научите как да използвате функцията decompose() на бази данни на Oracle, за да преобразувате дадено в неговото Unicode представяне.
Синтаксис на функцията за разлагане на Oracle
Синтаксисът на функцията е както е показано по-долу:
DECOMPOSE( низ [, { 'CANONICAL' | 'COMPATIBILITY' } ] )
Функцията приема два аргумента:
- низ – това представлява низът, който трябва да бъде преобразуван в Unicode състав. Стойността на този параметър може да бъде CHAR, VARCHAR, NCHAR, NVARCHAR2, CLOB и NCLOB.
- КАНОНИЧЕН – настройването на стойността на канонична позволява на функцията да извърши канонично разлагане, което позволява прекомпозиране към оригиналния низ. Ако не е указан, функцията ще използва този параметър по подразбиране.
- СЪВМЕСТИМОСТ – ако стойността е зададена на съвместимост, функцията ще извърши декомпозицията в режим на съвместимост. Този режим не позволява прекомпозиране към оригиналния низ. Използвайте тази опция, когато разлагате знаци на катакана с половин ширина и пълна ширина.
Добре е да имате предвид, че типовете CLOB и NCLOB се поддържат чрез явно преобразуване.
Примерно използване на функция
Следващите примери демонстрират как да използвате функцията decompose() на базите данни на Oracle.
Пример 1 – Използване на основна функция
Следният прост код показва как да използвате функцията за разлагане, за да разложите низ до неговото Unicode представяне.
изберете decompose('Hello') като изход от dual;Изпълнението на кода по-горе трябва да върне изходния низ като:
Пример 2 – Получаване на ASCII код
За да извлечем целочислените стойности на Unicode, можем да предадем получения низ към функцията asciistr, както е показано в примера по-долу:
изберете asciistr(decompose('你好')) като изход от dual;Изход:
Пример 3 – Използване на функцията със знаци, различни от Unicode
Ако предоставим на функцията знаци, различни от Unicode, функцията ще върне входния низ без никакви модификации.
Примерна демонстрация е както е показано:
изберете decompose('l') като изход от dual;Резултат:
Същият случай се прилага дори при използване на функцията asciistr.
изберете asciistr(('l')) като изход от dual;Изход:
Пример 4 – Използване на функцията с NULL аргумент
Функцията ще върне NULL стойност, ако входната стойност е NULL.
Пример:
изберете (NULL) като изход от двойно;Изход:
Пример 5 – Извикване на функцията с липсващи параметри
Низовият параметър във функцията е задължителен. Следователно, ако не успеем да предадем стойността на низа, функцията ще върне грешка, както е показано:
изберете () като изход от двойно;Резултат:
SQL грешка: ORA-00938: няма достатъчно аргументи за функция00938. 00000 - 'няма достатъчно аргументи за функция'
Заключение
В този урок научихте как да използвате функцията decompose() на Oracle, за да конвертирате низ в неговото Unicode представяне.