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