2

We have a web service (closed source) that accesses an Oracle 11g database. It was recently upgraded from 10g to 11g. It returns records, one of the columns being an NCLOB type. The string sent to the webservice may contain Windows NewLines, \r\n. Unfortunately, I'm not sure what, if anything the web service was doing to manipulate the data sent/received from the DB.

In 10g, the string returned from the NCLOB column was Big Endian Unicode, and all '\r' were dropped, so new lines would return as a \n.

In 11g, the string returned from the NCLOB is ASCII encoded, and all '\r' were replaced with '\n', so new lines return as \n\n.

Does this seem reasonable? Honestly, we've been handling Oracle newline issues for a while (the behavior of 10g), and I'm pretty sure that this is a result of upgrading to 11g. Does anyone have information on differences between 10g and 11g, related to newline or escape character sequence storage or the NCLOB datatype? I'm trying to do damage control here and point the finger at Oracle 11g, but need some evidence.

Stealth Rabbi
  • 10,156
  • 22
  • 100
  • 176

1 Answers1

0

How this is interpreted on the client depends on the client nls settings. You need to check if your client nls settings changed. Especially check the setting of the NLS_LANG environment variable. This needs to be set on a user basis. In windows this might be set in the registry.

steve
  • 5,870
  • 1
  • 21
  • 22
  • Unfortunately, my client application is not directly accessing the Oracle DB. I'm interacting with a web service of which I do not have control or visibility in to. – Stealth Rabbi Nov 09 '11 at 13:23
  • When you say "this" in your first sentence, are you referring to the big-endianness, the new lines, or both? – Stealth Rabbi Nov 09 '11 at 13:32
  • I'm referring to your nls client settings. If you are using a web service, you need to find out how the web service connects to the database. – steve Nov 10 '11 at 02:25