Oracle 11g обрабатывает переводы строк не так, как 10g - PullRequest
2 голосов
/ 25 октября 2011

У нас есть веб-сервис (с закрытым исходным кодом), который обращается к базе данных Oracle 11g.Недавно он был повышен с 10 до 11 г.Он возвращает записи, один из столбцов которых имеет тип NCLOB.Строка, отправляемая веб-службе, может содержать Windows NewLines, \ r \ n.К сожалению, я не уверен, что, если что-то делалось веб-службой для манипулирования данными, отправляемыми / полученными из БД.

В 10g строка, возвращаемая из столбца NCLOB, представляла собой Unicode Big Endian, и все'\ r' были удалены, поэтому новые строки возвращались бы как \ n.

В 11g строка, возвращаемая из NCLOB, кодируется в ASCII, и все '\ r' были заменены с '\ n', поэтому новые строки возвращаются как \ n \ n.

Это кажется разумным?Честно говоря, мы некоторое время решали проблемы с новой строкой в ​​Oracle (поведение 10g), и я уверен, что это результат обновления до 11g.Есть ли у кого-нибудь информация о различиях между 10g и 11g, связанных с сохранением последовательности новой строки или escape-символа или типом данных NCLOB?Я пытаюсь контролировать ущерб и указать пальцем на Oracle 11g, но мне нужны доказательства.

1 Ответ

0 голосов
/ 09 ноября 2011

То, как это интерпретируется на клиенте, зависит от настроек клиента nls. Вы должны проверить, изменились ли настройки вашего клиента NLS. Особенно проверьте настройку переменной среды NLS_LANG. Это должно быть установлено на основе пользователя. В Windows это может быть установлено в реестре.

...