I use oracleclient by creating DbProviderFactory and get schema:
DbDataReader reader = cmdForSchema.ExecuteReader(CommandBehavior.KeyInfo);
DataTable schemaTable = reader.GetSchemaTable();
however both float and number have DbType.Decimal as their DataType in in schemaTable. At least we're using NUMBER for integers and it would be nice to know which is it?
I think I remember that there's a way to get provider specific types. But that has a downside as well since it's not general any more (e.g. for SqlServer).
Thanks & BR: Matti