2011-10-25 6 views
2

Oracle 11gデータベースにアクセスするWebサービス(クローズドソース)があります。最近10gから11gにアップグレードされました。レコードを返します。列の1つはNCLOB型です。 Webサービスに送信される文字列には、WindowsのNewLines \ r \ nが含まれている場合があります。残念ながら、WebサービスがDBから送受信されるデータを操作するために何をしていたとしても、何がわからないのでしょうか。Oracle 11gが10gとは異なる改行を処理する

10gでは、NCLOB列から返された文字列はBig Endian Unicodeで、すべての '\ r'が削除されたため、新しい行は\ nとして返されます。

11gでは、NCLOBから返される文字列はASCIIエンコードされ、すべての '\ r'はで置き換えられました。は '\ n'に置き換えられました。新しい行は\ n \ nとして返されます。

これは妥当と思われますか?正直なところ、私たちはしばらくの間、Oracleの改行問題を処理していました(10gの動作)、これは11gにアップグレードした結果であると確信しています。改行やエスケープ・キャラクタ・シーケンス・ストレージまたはNCLOBデータ型に関連する10g〜11gの違いに関する情報は誰にもありますか?私はここでダメージコントロールを行い、Oracle 11gで指を指し示そうとしていますが、証拠が必要です。

答えて

0

これがクライアント上でどのように解釈されるかは、クライアントのnls設定によって決まります。クライアントの設定が変更されたかどうかを確認する必要があります。特にNLS_LANG環境変数の設定を確認してください。これはユーザー単位で設定する必要があります。ウィンドウでこれはレジストリで設定されるかもしれません。

+0

私のクライアントアプリケーションはOracle DBに直接アクセスしていません。私はコントロールや可視性を持たないWebサービスとやり取りしています。 –

+0

最初の文章で「this」と答えるときは、ビッグエンディアン、改行、またはその両方を指していますか? –

+0

あなたのnlsクライアントの設定を参照しています。 Webサービスを使用している場合は、Webサービスがデータベースにどのように接続するかを調べる必要があります。 – steve

関連する問題