いつもお世話になっております。
VB.NET 2003にて、Oracleからのデータの取得に
System.Data.OracleClient.OracleDataReaderを用いて、
oraReader = oraCommand.ExecuteReader()
として、データを取得しています。
この時、
oraReader.Read()
oraReader.Item(0)
とした時、全角チルダ「〜」を含んでいて、これをファイルに書き込むと、
「?」にかわってしまいます。
Oracle側のレジストリ、
NLS_LANGはJAPANESE_JAPAN_JA16SJISTILDE
になっていますし、DBもそれで作っています。
また、Oracle 9.0.1.1、9.2.0.1、10.1.0.2
のいずれで試しても同様の現象が発生しました。
これとは別に、OracleInProcServer(OO4O)で取得した時にはちゃん「〜」
と表示されるので、プログラム側もしくはSystem.Data.OracleClient.dll
の問題と思われるのですが、原因が分かりません。
特に、OracleDataReaderを使ってデータを取得しなくてもよいので、
別の方法でうまくいく方法があればそれでも構いませんので、解決方法
があれば御教授くださいませ。
お疲れ様です。
ウェーブダッシュ問題
でググルと解決するかと・・・。
いな様
早速の回答ありがとうございます。
書き込む前にもウエーブダッシュ問題で検索してみましたが、
System.Data.OracleClientによる取得時の解消方法はありませんでした。
上記しておりますが、OO4Oを使った時は問題なく取得できるので、
もしかしたらSystem.Data.OracleClientでは対応してないのかなとも
思っています…
ODP.NET使わないとダメなのでしょうかね…
とりあえず、プログラム側でEncodeして対応することにしました。
編集 削除