Хранение символов Unicode в MySql и Oracle - PullRequest
1 голос
/ 01 марта 2011

Сценарий: база данных в MySql и Oracle.Оба имеют одинаковую таблицу и одинаковые столбцы.В одной из таблиц у меня есть столбец «FullName».

Используемый тип данных Oracle - VarChar2 (64).MySql Datatype используется VarChar (64).

Для поддержки символов Unicode UTF 8 используется в качестве набора символов по умолчанию.

Я получаю сообщение об ошибке в Oracle, которое говорит "значение слишком большоедля столбца ", где, как и в MySql, он работает нормально.

Я хотел бы знать, в чем разница между этими двумя базами данных?

Примечание..

Заранее спасибо.

Паван

1 Ответ

2 голосов
/ 01 марта 2011

Причина, по которой он работал в MYSQL, заключается в том, что VarChar (64) в MYSQL означает, что 64 символа и символ по умолчанию - UTF8.

Для оракула это не работало, хотя набор символов по умолчанию для Oracle былUTF8.Причина - VarChar2 (64), означает 64 байта.А для японского символа в кодировке UTF 8 требуется 3 байта для одного символа.Отсюда ошибка «слишком большое значение для столбца».

Спасибо Дэвиду Сайксу за решение по следующей ссылке.

Разница между BYTE и CHAR в типах данных столбца

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...