0

Microsoft の非推奨の System.Data.OracleClient を使用して、Oracle テーブルのリモート クエリを実行しています。残念ながら、ここでは関係のない理由で、オラクルが提供する ODP プロバイダーを技術的に使用することができません。

クエリを実行する際に、特定の列の Oracle 型の文字列表現を取得したいと考えており、この情報を取得するために OraceDataReader の GetSchemaTable() メソッドに依存しています。近いものをいくつか見つけましたが、本当に探しているものではありません。これはほとんど途方もなく単純な要求のようです。

有望に思われるいくつかのことを試してみましたが、赤ニシンでした: Microsoft プロバイダーの型名 (例: )SchemaTableOptionalColumn.ProviderSpecificDataTypeを返す列を見つけましたが、必要なのは、Oracle で定義されているリテラル列型 (例: or )だけです。おそらく、数値を返すプロパティがプロバイダーの列挙にマップされると思いましたが、そうではありません。もう 1 つの希望は、対応する列の管理された型に実際にマップされますが、これも私が探しているものではありません。System.Data.OracleClient.OracleNumberNVARCHARNUMBERProviderTypeOracleTypeDataType

確かに誰かがこれを以前に解決したと思いましたが、もしそうなら、私はそれを探すための適切な岩をまだ見つけていません:)

4

1 に答える 1

2

残念ながら私はそれをテストすることはできませんが、このメソッドが必要なように思えます: OracleDataReader.GetDataTypeNameは、クエリ結果の特定の列の dataType を提供します。

于 2014-04-15T15:23:53.910 に答える