0

我正在使用 Microsoft 已弃用的 System.Data.OracleClient 对 Oracle 表执行一些远程查询。遗憾的是,出于与此处无关的原因,我在技术上无法使用 Oracle 提供的 ODP 提供程序。

在执行查询时,我想获取给定列的 Oracle 类型的字符串表示形式,并且依靠 OraceDataReader 的 GetSchemaTable() 方法来获取此信息。我找到了几件很接近的东西,但不是我真正想要的。这似乎是一个简单得可笑的请求。

我尝试了几件看起来很有希望的事情,但都是红鲱鱼:我找到了SchemaTableOptionalColumn.ProviderSpecificDataType返回Microsoft 提供程序类型名称的列(例如 . System.Data.OracleClient.OracleNumber),但我想要的只是 Oracle 中定义的文字列类型,例如NVARCHARor NUMBER。我想也许ProviderType返回数字的属性会映射到OracleType提供者中的枚举,但事实并非如此。另一个希望,DataType确实更多地映射到列的相应托管类型,这也不是我想要的。

我想肯定有人以前解决过这个问题,但如果他们有,我还没有找到合适的岩石来寻找它:)

4

1 回答 1

2

不幸的是,我无法对其进行测试,但听起来只是想要这个方法:OracleDataReader.GetDataTypeName,它为您提供查询结果的特定列的数据类型。

于 2014-04-15T15:23:53.910 回答