Oracle Decompose

Oracle Decompose



Unicode е един от най-влиятелните и мощни стандарти за кодиране в света на разработката. Unicode представя знаци от почти всички езици чрез кодиране на знаците в целочислен код между 0 и 0x10ffff.

Поради гъвкавостта на базите данни, от време на време ще се окажете, че конвертирате низ в неговото Unicode представяне.







В този урок ще научите как да използвате функцията decompose() на бази данни на Oracle, за да преобразувате дадено в неговото Unicode представяне.



Синтаксис на функцията за разлагане на Oracle

Синтаксисът на функцията е както е показано по-долу:



DECOMPOSE( низ [, { 'CANONICAL' | 'COMPATIBILITY' } ] )

Функцията приема два аргумента:





  1. низ – това представлява низът, който трябва да бъде преобразуван в Unicode състав. Стойността на този параметър може да бъде CHAR, VARCHAR, NCHAR, NVARCHAR2, CLOB и NCLOB.
  2. КАНОНИЧЕН – настройването на стойността на канонична позволява на функцията да извърши канонично разлагане, което позволява прекомпозиране към оригиналния низ. Ако не е указан, функцията ще използва този параметър по подразбиране.
  3. СЪВМЕСТИМОСТ – ако стойността е зададена на съвместимост, функцията ще извърши декомпозицията в режим на съвместимост. Този режим не позволява прекомпозиране към оригиналния низ. Използвайте тази опция, когато разлагате знаци на катакана с половин ширина и пълна ширина.

Добре е да имате предвид, че типовете 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 представяне.