关于 webservice 查询 表,提示OCI-22054的问题

深海之蓝 2012-12-13 11:55:41
之前一直用的是32位的oracle。新装了一个 2008 64位的系统,然后就安装了oracle 11g 64位版。之前的项目通过webservice 访问oracle查询大量数据没问题。但是换了64位的oracle后,webservice 查询一张1w行左右的表时报错,错误为OCI-22054。如果改成少量的数据(1000),查询没有问题。
在网上搜到的OCI-22054是这样的:

OCI-22054:
underflow error
Cause: This operation's result is below the range of Oracle number.
Action: Increase the input value(s) so that the result is in the range of Oracle number.

很奇怪,之前用32位的oracle 10g没出过这样的问题(同样的webservice代码),开始以为是没使用odp的问题,结果弄好odp后是一样的。请问大家,有遇到过类似的问题吗?官方给出的这个解决办法要怎样操作?
...全文
490 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
深海之蓝 2013-01-23
  • 打赏
  • 举报
回复
多谢版主,确实是越界问题。在程序中越界了,然后在oracle中直接识别成0,所以一直没发现。
深海之蓝 2012-12-14
  • 打赏
  • 举报
回复
多谢版主,现在在上班,回家再试一下。 还请问版主,这个是说 某列太长了吗?但一个是,我在winform下直接连oracle,同样的语句不出错;另外我要取的数据不能截取;最主要的是,同样的表,我取1000行,就不报错了。请问除了您说的这种情况,还有什么可能的情况吗和解决办法吗?
linwaterbin 2012-12-14
  • 打赏
  • 举报
回复
这个是OracleClient的常见问题。在查询时round一下, 例如Round(col1 / col2, 4)。
深海之蓝 2012-12-14
  • 打赏
  • 举报
回复
刚刚试了,还是不行,而且我查询的列中,没有number的,不需要round。 我感觉是需要对oracle进行一个什么配置。 请大家帮忙看看是怎么回事?

17,089

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧