Oracle поддерживает использование Unicode в именах столбцов.И перечисленная конструкция, как известно, работает.Тем не менее, есть несколько мест, где дела идут плохо.Живя в Нидерландах и работая со многими иностранными языками в Oracle, всегда было приятно столкнуться с еще одной ошибкой в приложении или ядре Oracle из-за использования Unicode.В Oracle 11.2 большинство проблем с Юникодом наконец решены.
Пожалуйста, проверьте следующие возможные причины:
База данных UNICODE?
Является ли ваша база данных AL32UTF?Используйте select value from v$nls_parameters where name='NLS_CHARACTERSET'
Нежелательный перевод между клиентом и сервером
Это, вероятно, ваша причина.
Правильно ли настроен ваш клиент и использует ли он необходимые параметры?
Поскольку C # поддерживает почти тот же Unicode, что и Oracle, всегда используйте что-то вроде 'DUTCH_THE NETHERLANDS.AL32UTF8' в качестве набора символов вашего клиента, например, используя NLS_LANG.Дополнительные инструкции можно найти в руководстве одного из наших пакетов программного обеспечения .
В противном случае Oracle преобразует символы из диапазона значений в нечто вроде «?».Обратите внимание, что преобразование символов ТОЛЬКО происходит, когда набор символов с обеих сторон отличается.Если они оба неверны, но идентичны, Oracle не заметит и просто передаст все двоичные символы без преобразования.
Пожалуйста, обновите свой вопрос, чтобы отразить то, что он возвращает вместо перевернутых вопросительных знаков.
Это преобразование происходит со всеми данными, именами столбцов или содержимым столбцов.
Можете ли вы обновить свой вопрос, отображается ли содержимое столбцов за пределами диапазона US7ASCII также неправильно или нет?
Код клиента
Большие части клиентского программного обеспечения не были протестированы с UNICODEперсонажи.Самый простой способ получить сбой приложения SQL часто состоит в том, чтобы ввести имена столбцов в смешанном регистре или имена столбцов UNICODE.Поскольку ваш клиентский код на C # и вы, вероятно, используете для подключения ODP.NET, это не должно быть проблемой в вашем случае.
Пока что, пожалуйста, убедитесь, что вы используете ODP.NET.
Распределенные базы данных
Распределенные базы данных Oracle также могут создавать дополнительные проблемы в дополнение к преобразованию набора символов клиент / сервер,Есть некоторые ошибки.Пожалуйста, обновите вопрос, если вы используете распределенные базы данных.