Oracle OCI-22053 错误

写代码时遇到Oracle OCI-22053错误,起初以为是Fill(DataSet)问题,换用OracleDataReader仍未解决。查阅MSDN得知,Oracle数值数据类型存储精度有限,转换为公共语言运行库数据类型时可能溢出。通过将查询结果转换为字符型或限制小数位数可解决该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写代码的时候发现了 Oracle OCI-22053 错误,找了很久
原来以为是Fill(DataSet)有问题,后来换成OracleDataReader 还是这样。
后来看MSDN才看到
 
Oracle 数值数据类型最多可存储 38 个字节的精度。
当将 Oracle 数值转换为公共语言运行库数据类型时,
Oracle 值可能会变得过大。这会导致 Oracle OCI-22053 溢出错误。
 
原来的代码类似于
Comander.CommandText = "SELECT 1/3 FROM DUAL ";
结果返回的小数点后位数太多,造成了dotnet转换后Oracle OCI-22053错误。
 
后来转换为字符型,改成 SELECT TO_CHAR(1/3) FROM DUAL这样就可以
或者把ROUND(1/3,2) 把小数位数限制下也可以
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值