Oracle 11g处理换行符的方式与10g不同

时间:2011-10-25 18:02:12

标签: oracle10g oracle11g newline clob nclob

我们有一个访问Oracle 11g数据库的Web服务(封闭源代码)。它最近从10克升级到11克。它返回记录,其中一列是NCLOB类型。发送到Web服务的字符串可能包含Windows NewLines,\ r \ n。不幸的是,我不确定Web服务正在做什么来操纵从数据库发送/接收的数据。

在10g中,从NCLOB列返回的字符串是Big Endian Unicode,并且所有'\ r'都被删除,因此新行将以\ n返回。

在11g中,从NCLOB返回的字符串是ASCII编码的,并且所有'\ r'都被替换和'\ n',因此新行返回为\ n \ n。

这看起来合情合理吗?老实说,我们一直在处理Oracle换行问题(10g的行为),我很确定这是升级到11g的结果。有没有人知道10g和11g之间的差异,与换行符或转义字符序列存储或NCLOB数据类型有关?我试图在这里进行损害控制并指责Oracle 11g,但需要一些证据。

1 个答案:

答案 0 :(得分:0)

如何在客户端上解释这取决于客户端的nls设置。您需要检查您的客户端nls设置是否已更改。特别要检查NLS_LANG环境变量的设置。这需要在用户的基础上进行设置。在Windows中,这可能在注册表中设置。