Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从MS OracleClient获取架构中的本机Oracle列类型_C#_Sql_Oracle_System.data.oracleclient - Fatal编程技术网

C# 从MS OracleClient获取架构中的本机Oracle列类型

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

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

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

我尝试了几件看似有希望的事情,但都是转移视线:我找到了
SchemaTableOptionalColumn.ProviderSpecificDataType
列以返回Microsoft提供程序类型名称(例如
System.Data.OracleClient.OracleNumber
),但我只需要Oracle中定义的文本列类型,例如
NVARCHAR
NUMBER
。我认为返回一个数字的
ProviderType
属性可能会映射到提供程序中的
OracleType
枚举,但事实并非如此。另一个希望是,
DataType
真正映射到列的相应托管类型,这也不是我想要的


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

不幸的是,我无法测试它,但听起来好像只是想要这个方法:,它可以为您提供查询结果特定列的数据类型。

绝对完美!!!我不敢相信我从没见过。正是我需要的。谢谢