2年前の情報なので、最新版では改善されているかもしれませんが、おそらくこの問題はどこにも開示されていないと思います。OracleからSQL Serverへの移行というケースもあるでしょうから、参考までに記事として残しておきたいと思います。
この記事で紹介したいのは、固定小数点数を扱うNUMBER型をOracleで扱っている場合、ODBCドライバ、OLEDBプロバイダを使っても正しいメタ情報を取得できないという問題です。またメタ情報がおかしいため、取得した数値がOracleに格納されているものと異なる問題があります。これは、Microsoft製、Oracle製、どちらにも問題があります。
[テスト環境]
Windows 2000 Advanced Server SP3
Oracle 8i Enterprise Edition 8.1.7.0.0
Microsoft Data Access SDK 2.6
RowsetViewer 2.6.6720.0 (RowsetViewer.exe)
ODBC Test 2.6.0905 (odbct32w.exe)
[OLEDBプロバイダ]
Microsoft OLE DB for Oracle 2.70.9001.0 (MSDAORA.DLL)
Microsoft OLE DB for ODBC Drivers 2.70.9001.0 (MSDASQL.DLL)
Oracle Provider for OLE DB 8.1.7.2 (OraOLEDB.DLL)
[ODBCドライバ]
Microsoft ODBC for Oracle 2.70.9001.0 (MSORCL32.DLL)
Oracle ODBC Driver 8.01.77.00 (SQLORA32.DLL)
言葉でごちゃごちゃ伝えずに、画像を掲載します。興味のある方は、拡大して見てください。
ODBCドライバとOLEDBプロバイダによって、メタ情報が改ざんされる問題

メタ情報が改ざんされるため、取得した数値が変わってしまう問題
精度が要求されるはずのNUMBER型が破壊されているようでは・・・、精度が要求される場合、データベースアクセスメソッドを安易に過信しないことが重要です。