Есть ли какие-либо недостатки использования UTF8 в базе данных оракула?

Действительно ли Вы абсолютно уверены, что не хотите переустанавливать ту машину? Если бы это был персональный рабочий стол, который был бы одной вещью, но я не уверен, что доверял бы машине без новой установки.

Я могу быть параноиком здесь, все же.

7
задан 9 October 2009 в 14:51
5 ответов

У Вас должно быть два варианта сделать:

  1. Выберите свой набор символов базы данных (используемый VARCHAR2, CHAR, CLOB типы данных).
  2. Выберите свой набор национального характера (используемый NVARCHAR2, NCHAR, NCLOB типы данных).

Как замечено здесь:

Oracle рекомендует использовать Unicode для всех новых развертываний системы.

Наборы национального характера могут только быть Unicode: UTF-8 или UTF-16. Так выбор того же набора символов для обоих был бы избыточен...

Мой совет (Вы говорите, что Ваше приложение находится только на английском языке):

  • Попросите свой набор символов базы данных быть UTF-8.
  • Попросите свой набор национального характера быть UTF-16.

И вот мои общие рекомендации для Вашего определения схемы. Таблица таблицей, столбец столбцом (я беру VARCHAR2/NVARCHAR2 выберите здесь):

  • если Ваш столбец мог бы содержать какой-либо символ в мире (как во вводе данных пользователем), сделайте его NVARCHAR2.
  • если Вы имеете контроль о том, что будет сохраненным (английский язык затем), сделайте его VARCHAR2.
6
ответ дан 2 December 2019 в 23:18
  • 1
    I' ll добавляют больше ссылок, как только я могу получить доступ к документам Oracle (сайт снижается на данный момент). –  Mac 9 October 2009 в 18:10
  • 2
    Сайт Oracle произошел, и чтение документации заставило меня немного изменить свой ответ... –  Mac 12 October 2009 в 13:08

Но предостерегитесь:

Не используйте набор символов под названием UTF8 как набор символов базы данных, если не требуется для совместимости с клиентами и серверами Базы данных Oracle в версии 8.1.7 и ранее, или, если явно не требуется Вашим поставщиком приложений. Несмотря на наличие очень похожего имени, UTF8 не является надлежащей реализацией Unicode, кодирующего UTF-8. Если набор символов UTF8 используется, где обработка UTF-8 ожидается, потеря данных и проблемы безопасности могут произойти. Это особенно верно для связанных с сетью данных, таково как адреса URL и XML.

Oracle рекомендует AL32UTF8 как набор символов базы данных. AL32UTF8 является названием Oracle кодировки UTF-8 стандарта Unicode.

9
ответ дан 2 December 2019 в 23:18
  • 1
    Большое спасибо.. fortunatly AL32UTF8 был тем, что они предложили.. :-) –   13 October 2009 в 15:47

Есть ли какие-либо мотивации для того, чтобы не использовать UTF8 или другой unicode набор символов?

Просто тот; у Вас есть существующий набор данных, которого Вы не можете гарантировать текущее кодирование набора символов.

В этом случае Вы, вероятно, хотите исправить это и все еще использовать UTF8.

2
ответ дан 2 December 2019 в 23:18

Нет, нисколько.

1
ответ дан 2 December 2019 в 23:18

Половина шутки: Да, Вы не можете больше соединяться со старыми клиентами, которые не знают UTF.

0
ответ дан 2 December 2019 в 23:18

Теги

Похожие вопросы