У меня есть база данных DB2, и я уже определил таблицы с varchar(x)
, но кажется, что x
- это не количество символов, а количество байтов. Можно ли как-то решить проблему как-то динамично? или мне следует обновлять таблицы?Конфигурация хранилища DB2 UTF8
ответ
Символы UTF-8 могут быть представлены байтовыми последовательностями длиной от 1 до 4 байтов, поэтому невозможно заранее знать максимальную длину байта строки UTF-8, которая содержит x
символы Юникода.
Начиная с DB2 10.5 fix pack 4 (так называемый «выпуск Cancun») вы можете specify string length units при определении столбцов: VARCHAR(x OCTETS)
будет означать x байты; VARCHAR(x CODEUNITS16)
будет означать x двухбайтовых символов, а VARCHAR(x CODEUNITS32)
будет означать x четырехбайтовых символов.
Если вы не укажете единицы явно, значение по умолчанию выводится из параметра конфигурации базы данных string_units
и из глобальной переменной NLS_STRING_UNITS
.
GRAPHIC
и VARGRAPHIC
типы данных также подчиняются одной и той же спецификации единицы, хотя для них по умолчанию используется 2-байтовый символ, а не октеты.
Следует отметить, что характер и CLOB колонки по-прежнему распространяются те же ограничения длины, как и раньше, например, максимальная длина VARCHAR
колонны составляет 32672 байт (OCTETS
), или 16336, или .
, поэтому в основном мне нужно установить CODEUNITS32 в строковых единицах, правильно? –
Я не могу сказать вам, что вам нужно делать, потому что я не знаю ваших требований. Я надеюсь, что предоставленная вами информация поможет вам принять решение. – mustaccio
Я установил fx4 и установил string_utils в codeunit32, поэтому он работает сейчас, спасибо! –
- 1. Конфигурация Hibernate mysql utf8
- 2. Конфигурация IBM Cognos DB2
- 3. Экспорт данных UTF8 из db2
- 4. XCode4: Конфигурация хранилища SCM
- 5. Конфигурация хранилища с дерби
- 6. Конфигурация хранилища веб-сервисов
- 7. Постоянная конфигурация хранилища Rails
- 8. Конфигурация хранилища в хранилище
- 9. Подключение DB2 с Java, конфигурация
- 10. Конфигурация SSL в DB2 LUW
- 11. Конфигурация хранилища Java и другие файлы
- 12. Ошибка utf8 в средстве просмотра хранилища данных (Go runtime)
- 13. Частичная конфигурация совпадений и кодировок utf8 на MySQL 5.6
- 14. Как написать статистику производительности хранилища данных в таблице DB2?
- 15. Конфигурация SSL в Jboss 7.1 - java.io.IOException: Неверный формат хранилища ключей
- 16. Конфигурация хранилища Https в maven для jira Среда разработки
- 17. Weblogic Ошибка сервер 10.3.0 хранилища ключей: несовместимая конфигурация безопасности
- 18. Конфигурация для хранилища данных с памятью для хранения в RestKit
- 19. DB2
- 20. DB2
- 21. Конфигурация WebLogic Multipool
- 22. Резервное копирование DB2 DB2 в Windows - DB2 version 9.7
- 23. Symfony2 и учение, кодирование utf8
- 24. UTF8 в MySQL! = UTF8 в PHP?
- 25. файл с фильтрами utf8 с фильтрами utf8
- 26. Получить utf8 DOM из utf8 файла
- 27. Быстрое кодирование UTF8 и символ не UTF8
- 28. Преобразование из EBCDIC в UTF8 в Linux
- 29. DB2 extract with vbscript
- 30. Mulesoft DB2 Connection
Я не думаю, что это «проблема» - это хорошо документированное поведение. Ответ зависит от версии и платформы DB2, о которых вы не указали. – mustaccio
db2 v10.5 и я запускаю его на Win. Я читал, что могу использовать VARGRAPHIC –