我正在使用 Microsoft 已弃用的 System.Data.OracleClient 对 Oracle 表执行一些远程查询。遗憾的是,出于与此处无关的原因,我在技术上无法使用 Oracle 提供的 ODP 提供程序。
在执行查询时,我想获取给定列的 Oracle 类型的字符串表示形式,并且依靠 OraceDataReader 的 GetSchemaTable() 方法来获取此信息。我找到了几件很接近的东西,但不是我真正想要的。这似乎是一个简单得可笑的请求。
我尝试了几件看起来很有希望的事情,但都是红鲱鱼:我找到了SchemaTableOptionalColumn.ProviderSpecificDataType
返回Microsoft 提供程序类型名称的列(例如 . System.Data.OracleClient.OracleNumber
),但我想要的只是 Oracle 中定义的文字列类型,例如NVARCHAR
or NUMBER
。我想也许ProviderType
返回数字的属性会映射到OracleType
提供者中的枚举,但事实并非如此。另一个希望,DataType
确实更多地映射到列的相应托管类型,这也不是我想要的。
我想肯定有人以前解决过这个问题,但如果他们有,我还没有找到合适的岩石来寻找它:)