2

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

10g では、NCLOB 列から返される文字列はビッグ エンディアン Unicode であり、すべての '\r' が削除されたため、新しい行は \n として返されました。

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

これは合理的に思えますか?正直なところ、Oracle の改行の問題 (10g の動作) をしばらく処理してきましたが、これは 11g にアップグレードした結果であると確信しています。改行またはエスケープ文字シーケンスのストレージまたは NCLOB データ型に関連する、10g と 11g の違いに関する情報を持っている人はいますか? 私はここでダメージコントロールを行おうとしており、Oracle 11g を指摘していますが、いくつかの証拠が必要です。

4

1 に答える 1

0

これがクライアントでどのように解釈されるかは、クライアントの nls 設定によって異なります。クライアントの nls 設定が変更されたかどうかを確認する必要があります。特に NLS_LANG 環境変数の設定を確認してください。これは、ユーザーごとに設定する必要があります。Windows では、これはレジストリに設定されている場合があります。

于 2011-11-09T04:38:11.973 に答える