C#执行Sql 时,出现“算术运算导致溢出”问题,如何解决?
昨天在C#执行oracle的sql语句时,总是报错,原先在pl/sql 执行sql语句是可以的,在C#执行就报“算术运算导致溢出”问题
SQL语句
select A.SKU_ID 商品标识,A.COLOR 货主编码,B.NAME 货主名称,C.NAME 商品名称,A.RCV_DATE_TIME 入库日期,A.XPIRE_DATE 失效日期,
TO_NUMBER(TO_DATE(sysdate,'yyyy-mm-dd hh24:mi:ss')- TO_DATE(A.RCV_DATE_TIME,'yyyy-mm-dd hh24:mi:ss')) 入库天数,
TO_NUMBER(TO_DATE(A.XPIRE_DATE,'yyyy-mm-dd hh24:mi:ss')- TO_DATE(sysdate,'yyyy-mm-dd hh24:mi:ss')) 效期天数
from C_INV_3PL@TMS20_TEST A
left join Dxc_Consignor B on A.COLOR= B.CODE
left join Dxc_Goods C on A.SKU_ID = C.WMSCODE
where B.MID=22 and C.IMPORTANCE=1
SQL查询结果

在C#执行时,log日志异常信息
-- ::, [] DEBUG Sys - select * from
(
select A.SKU_ID 商品标识,A.COLOR 货主编码,B.NAME 货主名称,C.NAME 商品名称,A.RCV_DATE_TIME 入库日期,A.XPIRE_DATE 失效日期,
TO_NUMBER(TO_DATE(sysdate,'yyyy-mm-dd hh24:mi:ss')- TO_DATE(A.RCV_DATE_TIME,'yyyy-mm-dd hh24:mi:ss')) 入库天数,
TO_NUMBER(TO_DATE(A.XPIRE_DATE,'yyyy-mm-dd hh24:mi:ss')- TO_DATE(sysdate,'yyyy-mm-dd hh24:mi:ss')) 效期天数
from C_INV_3PL@TMS20_TEST A
left join Dxc_Consignor B on A.COLOR= B.CODE
left join Dxc_Goods C on A.SKU_ID = C.WMSCODE
where B.MID= and C.IMPORTANCE=
)
where fluentdata_RowNumber between and
order by fluentdata_RowNumber
-- ::, [] ERROR ServiceDXC_MAINTAIN - 获取动态列表失败
System.OverflowException: 算术运算导致溢出。
最后,百度一下,终于知道原因了。
问题原因:
Oracle的精度和C#之间的精度是不一致的,因为我的SQL语句用到计算两个日期相差天数的函数(TO_NUMBER),
在pl/sql中执行看到小数位非常长,这个是导致C#执行出错的原因。
解决方法:
在原先计算函数前面添加Round()函数,用来把精度降低到可一定范围。
select A.SKU_ID 商品标识,A.COLOR 货主编码,B.NAME 货主名称,C.NAME 商品名称,A.RCV_DATE_TIME 入库日期,A.XPIRE_DATE 失效日期,
round(TO_NUMBER(TO_DATE(sysdate,'yyyy-mm-dd hh24:mi:ss')- TO_DATE(A.RCV_DATE_TIME,'yyyy-mm-dd hh24:mi:ss')),2)入库天数,
round(TO_NUMBER(TO_DATE(A.XPIRE_DATE,'yyyy-mm-dd hh24:mi:ss')- TO_DATE(sysdate,'yyyy-mm-dd hh24:mi:ss')),2) 效期天数
from C_INV_3PL@TMS20_TEST A
left join Dxc_Consignor B on A.COLOR= B.CODE
left join Dxc_Goods C on A.SKU_ID = C.WMSCODE
where B.MID=22 and C.IMPORTANCE=1
PS: 使用oracle计算函数时(AVE()、TO_NUMBER()、SUM()等),都可用round()来把精度降低
C#执行Sql 时,出现“算术运算导致溢出”问题,如何解决?的更多相关文章
- 使用sqlplus执行sql时,发现有中文有乱码解决方法
https://blog.csdn.net/fyyinjing/article/details/77877239
- sql语句执行时算术运算导致溢出。
执行sql语句时报错: 用户代码未处理 System.OverflowException HResult=-2146233066 Message=算术运算导致溢出. 文章:https://bbs.cs ...
- 执行sql时出现错误 extraneous input ';' expecting EOF near '<EOF>'
调用jdbc执行hive sql时出现错误 Error while compiling statement: FAILED: ParseException line 5:22 extraneous i ...
- 执行SQL时出现: ORDER BY clause is not in GROUP BY clause and contains nonaggregated c
注意: 采用navicat新建数据库时,需要将编码方式设置为,字符集:utf8 -- UTF-8 Unicode ,排序规则:utf8_general_ci 在运行sql语句时,出现以下问题: [Er ...
- C#报算术运算导致溢出的错误
如果是在fill datatable时报这个错,是因为所查询的数据中有在数据库中为NUMBER类型的字段,这种类型C#中不能识别,需TO_CHAR转换成字符型,就不会再报这个错了. e.g. SELE ...
- iBatis应用--控制执行SQL时的超时时间
https://blog.csdn.net/jackie_xiaonan/article/details/8459320
- 【转】.net算术运算导致溢出
源地址:http://blog.csdn.net/hawksoft/article/details/70470136
- SQL执行SQL语句提示 "内存不足"(insufficient memory....)的解决方法
由于本地执行的sql script的文件太大但是本地sql的运行内存有限,当我在MSSql的工具上运行这份178M左右的脚本的时候 它会提示 如下错误(Insufficient memory to c ...
- 对hadoop 执行mapreduce时发生异常Illegal partition for的解决过程
来自:http://blog.csdn.net/hezuoxiang/article/details/6878026 写了个mapreduce的JAVA程序,自定义了个partition class ...
随机推荐
- Java里的String类为什么是final的
今天在看<图解设计模式>,里面出了一个问题“String类用final修饰,导致它无法被继承(扩展),这样做违反了开闭原则,这么做有什么正当理由?” 答案是效率和安全性 首先是效率,由于 ...
- 鼠标经过事件(onmouseover)
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- [HTML]html读取本地文件并显示
<html> <body> <script script type="text/javascript"> function show() { v ...
- Python中什么是变量
在Python中,变量的概念基本上和初中代数的方程变量是一致的. 例如,对于方程式 y=x*x ,x就是变量.当x=2时,计算结果是4,当x=5时,计算结果是25. 只是在计算机程序中,变量不仅可以是 ...
- CxImage透明图片合成和文字叠加
1 CxImage的作用 CxImage将几张图片合成一张图片,在一张底图上添加图片,有些图片是有透明效果的,实现图片之间的透明重叠效果.另外还可以添加文字. (1)背景图片mymix ...
- python实现邮件接口——smtplib模块
1. 思路 使用脚本发送邮件的思路其实和客户端发送邮件一样,过程都是: 登录 —> 写邮件 —> 发送 只不过通过脚本发送时我们需要考虑到整个过程的方方面面.以下为思路导图: 2. Pyt ...
- Java Spring JDBC访问数据库
一.首先采用org.springframework.jdbc.datasource.DriverManagerDataSource类进行实现 1.applicationContext.xml配置如下: ...
- office2016如何激活
office2016如何激活 一.总结 一句话总结:office2016没有激活成功,下了一个office2013破解版 office2013破解版 二.自己做法 三中的方法点赞蛮多的(100多个), ...
- Superclass和Constructor Chaining
A subclass inherits accessible date fields and methods from its superclass. Does it inherit construc ...
- 亚马逊商品页面的简单爬取 --Pyhon网络爬虫与信息获取
1.亚马逊商品页面链接地址(本次要爬取的页面url) https://www.amazon.cn/dp/B07BSLQ65P/ 2.代码部分 import requestsurl = "ht ...