При использовании 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;
}