C# 从MS OracleClient获取架构中的本机Oracle列类型
我正在使用不推荐使用的Microsoft System.Data.OracleClient对Oracle表执行一些远程查询。很遗憾,我在技术上无法使用Oracle提供的ODP提供程序,原因与此无关 在执行查询时,我希望获取给定列的Oracle类型的字符串表示形式,并且我依赖OraceDataReader的GetSchemaTable()方法来获取此信息。我发现了一些很接近的东西,但不是我真正想要的。这似乎是一个可笑的简单要求 我尝试了几件看似有希望的事情,但都是转移视线:我找到了C# 从MS OracleClient获取架构中的本机Oracle列类型,c#,sql,oracle,system.data.oracleclient,C#,Sql,Oracle,System.data.oracleclient,我正在使用不推荐使用的Microsoft System.Data.OracleClient对Oracle表执行一些远程查询。很遗憾,我在技术上无法使用Oracle提供的ODP提供程序,原因与此无关 在执行查询时,我希望获取给定列的Oracle类型的字符串表示形式,并且我依赖OraceDataReader的GetSchemaTable()方法来获取此信息。我发现了一些很接近的东西,但不是我真正想要的。这似乎是一个可笑的简单要求 我尝试了几件看似有希望的事情,但都是转移视线:我找到了SchemaTa
SchemaTableOptionalColumn.ProviderSpecificDataType
列以返回Microsoft提供程序类型名称(例如System.Data.OracleClient.OracleNumber
),但我只需要Oracle中定义的文本列类型,例如NVARCHAR
或NUMBER
。我认为返回一个数字的ProviderType
属性可能会映射到提供程序中的OracleType
枚举,但事实并非如此。另一个希望是,DataType
真正映射到列的相应托管类型,这也不是我想要的
我想肯定有人已经解决了这个问题,但如果他们已经解决了,我还没有找到合适的岩石来寻找它:)不幸的是,我无法测试它,但听起来好像只是想要这个方法:,它可以为您提供查询结果特定列的数据类型。绝对完美!!!我不敢相信我从没见过。正是我需要的。谢谢