Sybaseサーバーへのクエリの1つは、ガベージデータを返すことです。いくつかの調査の結果、データ型がdoubleの列の1つが問題の原因であることがわかりました。その特定の列を選択しない場合、クエリは正しい結果を返します。質問の列は、小数点以下の桁数が多いdoubleです。小数点以下4桁までのラウンド関数を使用しようとしましたが、それでもデータが破損しています。クエリで列を正しく指定して正しいデータを取得するにはどうすればよいですか?
Windows7ボックスとSybaseAdaptiveServerエンタープライズドライバを使用しています。(Sybaseクライアント15.5)。32ビットドライバーを使用しています。
サンプル結果:
Windows7ボックスでSybaseASEドライバを使用した場合の誤った結果
"select ric_code as ric, adjusted_weight as adjweight from v_temp_idx_comp where index_ric_code='.AXJO' and ric_code='AQG.AX'"
ric adjweight
1 AQG.AX NA
2 \020 NA
3 <NA> NA
Merantドライバーを使用したWindowsXPボックスでの正しい結果
"select ric_code, adjusted_weight from v_temp_idx_comp where index_ric_code='.AXJO' and ric_code='AQG.AX'"
ric_code adjusted_weight
1 AQG.AX 0.3163873547
よろしく、Alok