Microsoft の非推奨の System.Data.OracleClient を使用して、Oracle テーブルのリモート クエリを実行しています。残念ながら、ここでは関係のない理由で、オラクルが提供する ODP プロバイダーを技術的に使用することができません。
クエリを実行する際に、特定の列の Oracle 型の文字列表現を取得したいと考えており、この情報を取得するために OraceDataReader の GetSchemaTable() メソッドに依存しています。近いものをいくつか見つけましたが、本当に探しているものではありません。これはほとんど途方もなく単純な要求のようです。
有望に思われるいくつかのことを試してみましたが、赤ニシンでした: Microsoft プロバイダーの型名 (例: )SchemaTableOptionalColumn.ProviderSpecificDataType
を返す列を見つけましたが、必要なのは、Oracle で定義されているリテラル列型 (例: or )だけです。おそらく、数値を返すプロパティがプロバイダーの列挙にマップされると思いましたが、そうではありません。もう 1 つの希望は、対応する列の管理された型に実際にマップされますが、これも私が探しているものではありません。System.Data.OracleClient.OracleNumber
NVARCHAR
NUMBER
ProviderType
OracleType
DataType
確かに誰かがこれを以前に解決したと思いましたが、もしそうなら、私はそれを探すための適切な岩をまだ見つけていません:)