【问题标题】:reader.GetSchemaTable on Oracle database does not return a DataTypeName columnOracle 数据库上的 reader.GetSchemaTable 不返回 DataTypeName 列
【发布时间】:2011-09-04 17:01:39
【问题描述】:
做一个表 = reader.GetSchemaTable();在 sql server 2005 上,我返回一列 DataTypeName 以找出我的 select 语句的数据类型。
在 oracle 服务器上执行相同的代码返回 NO DataTypeName 列。
然后如何使用 select column1 from tablename 语句获取 column1 字段的数据类型名称?
【问题讨论】:
标签:
sql
database
oracle
types
getschematable
【解决方案1】:
你使用的是哪个阅读器,OracleDataReader.GetSchemaTable Method 应该可以满足你的需求
【解决方案2】:
使用 Oracle 时,DbDataReader.GetSchemaTable 不起作用。
您可以使用 OracleDataReader.GetSchemaTable。
另一种选择是遍历 DbDataReader 字段,如下所示:
public bool Test(DbDataReader _dr, string columnName)
{
for (int i = 0; i <= _dr.FieldCount - 1; i++)
{
if ((_dr.GetName(i).Equals(columnName, StringComparison.InvariantCultureIgnoreCase)))
{
//Change this to your needs
_dr.GetDataTypeName(i);
return true;
}
}
return false;
}