4

我正在尝试将 Oracle(版本 8i)中的一列字符串解析为整数。

我正在通过 Oracle.DataAccess 库访问结果

我已经使用TO_NUMBER掩码将字符串转换为没有小数位的数字。问题是客户端代码中的值被检索为十进制而不是整数。

4

4 回答 4

7
CAST(field AS integer)
于 2009-05-13T11:29:13.220 回答
3

NUMBER 列在 ODP.NET 中始终以小数形式返回。要解决这个问题,请将其作为 OracleDecimal 拉回,它有几个“Toxxxx”方法可以将值转换为您需要的本机 .NET 类型。

while (myOracleDataReader.Read())
{
    int x = myOracleDataReader.GetOracleDecimal(0).ToInt32();
}

(如果上面的代码不是 100% 正确,请原谅我,因为我家里没有安装 ODP.NET。)

于 2009-05-13T12:24:09.447 回答
1

TO_NUMBER是您想要的,特别是TO_NUMBER('42', '99')版本。

于 2009-05-13T10:46:39.047 回答
0

您始终可以使用 round 函数(或 trunc 或 floor 函数)将小数转换为整数

于 2009-05-13T11:23:44.710 回答