Можно ли задать кодировку Oracle в строке подключения? - PullRequest
2 голосов
/ 12 октября 2010

Моя тестовая база данных имеет кодировку AL32UTF8, однако производственная база данных имеет кодировку WE8ISO8859P1.Мое приложение написано в .NET, и я использую класс System.Data.OracleClient.OracleConnection по умолчанию для установления соединения.

Я создаю IDbCommand и добавляю объекты IDbDataParameter, когда хочу вставить некоторые строки с не-ASCII-символами.

В тестовой базе данных все работает хорошо, одновременное преобразование внутреннего формата строки .NET в AL32UTF8 работает нормально.Однако на производстве я просто не работаю.Внутреннее строковое представление .NET (то есть utf16) не может быть каким-либо образом преобразовано в WE8ISO8859P1.

Мой вопрос: можете ли вы указать кодировку базы данных в строке подключения?Или есть другой способ сообщить драйверу (System.Data.OracleClient.OracleConnection), что база данных ожидает определенную кодировку?

1 Ответ

3 голосов
/ 13 октября 2010

Преобразование должно происходить автоматически, если вы не используете символы, которые не могут быть представлены в WE8ISO8859P1. Если у вас есть такие символы, вы все равно не сможете сохранить их в базе данных.

Если вы попытаетесь сохранить знак евро (€), вам не повезет. Он не является частью WE8ISO8859P1.

...