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