мой столбец «идеограмма» имеет тип данных varchar2 (1000). Я вставил один символ в столбец с Microsoft IME, 寺, Oracle sqlplus просто выдает мне знак «?». Я проверил v $ nls_parameters. nls_characterset = AL32UTF8 nls_nchar_characterset = AL16UTF16
Теперь, исходя из того, что я прочитал в других вопросах здесь, если я использую тип данных varchar2, то на основе запроса v $ nls_parameters база данных использует AL32UTF8, но это "национальный набор символов", я думаю, я понятия не имею, что такое набор символов "базы данных".
Я также использовал функцию дампа с двойной таблицей. выберите дамп ('寺', 1016) из двойного; Я получил тип = 96 len = 1 набор символов = AL32UTF8: 3F
Я проделал то же самое в lifeql.oracle.com, который использует apex в облаке, и получил следующее: typ = 96 len = 3 characterset = AL32UTF8: e5, af, ba
почему шестнадцатеричные коды разные, если это один и тот же набор символов?
Понятия не имею, какую кодировку использует microsoft IME, возможно, в этом проблема.
Как я могу это исправить? Я могу создать другую базу данных, потому что у меня нет данных в той, в которой я это делаю, только для учебных целей. но я хочу посмотреть, смогу ли я исправить это, не делая этого.