, - ODP.NET NUMBER OracleDecimal .
, NUMBER , , . NUMBER (N, 0) , ODP.NET .NET / .
, , ExecuteDataReader() :
using(var reader = cmd.ExecuteReader())
{
while(reader.Read())
{
var v = Convert.ToInt16(reader["name"]);
}
}
, OracleDecimal IConvertible Int32 Convert.ToInt32() ( ).
, OracleDataReader.GetInt16() :
int num2 = (int) this.m_pOpoMetValCtx->pColMetaVal[i].Scale;
int num3 = (int) this.m_pOpoMetValCtx->pColMetaVal[i].Precision;
if (num2 > 0 || num3 - num2 >= 5)
throw new InvalidCastException();
, , , , - . , NUMBER ODP.NET OracleDecimal, Int16, Int32, Int64, Float, Double Decimal
,
SELECT CAST(1 AS NUMBER(3,0)) as c1, CAST(220 AS NUMBER) as c2 FROM DUAL
:
var v = Convert.ToInt16(reader["c2"]);
:
var v = reader.GetInt16(1);
, , , OracleDbTypeEx .
,
var p = new OracleParameter("name",OracleDbType.Int32, ParameterDirection.Output)
OracleDecimal , , :
var p = new OracleParameter("name",OracleDbType.Int32, ParameterDirection.Output);
p.OracleDbCodeEx = OracleDbType.Int32;
.net System.Int32.
ODP.NET , . OracleDataReader.GetOrdinal() . .