ARITHMETIC_OVERFLOW错误类
<消息>
。<可选>
如果必要的设置<设置>
“假”绕过这个错误。
解释
一个算术溢出发生在砖执行数学运算的最大射程超过数据类型执行的操作。
在许多情况下执行数学最少见类型的操作符的操作数,或最少见的类型参数的函数。
添加类型的两个数非常小的整数
很快就会超过类型范围是有限的-128年
来+ 127
。其他类型如时间戳
和时间间隔
也有很多,但有限的范围。
对于一个定义的域类型的定义数据类型。
例子
——一个溢出的一个小数字>选择One hundred.Y*One hundred.Y;(ARITHMETIC_OVERFLOW]One hundred.年代*One hundred.年代引起的溢出。如果必要的集ansi_mode来“假”(除了为ANSI时间间隔类型)来绕过这错误。——使用更广泛的数值来执行操作,一个操作数>选择One hundred.Y*投(One hundred.Y作为整数);10000年——一个溢出的一个复杂的表达式,可以重写>选择One hundred.Y*10Y/5;(ARITHMETIC_OVERFLOW]One hundred.年代*10年代引起的溢出。如果必要的集火花。sql。ansi。启用来“假”(除了为ANSI时间间隔类型)来绕过这错误。——重写表达式>选择One hundred.Y/5*10Y;200年。0——偶尔overfklow应该被容忍>选择__arg1*最长从值(One hundred.Y,One hundred.Y),(20.Y,5Y)作为t(__arg1,最长);(ARITHMETIC_OVERFLOW]One hundred.年代*One hundred.年代引起的溢出。如果必要的集ansi_mode来“假”(除了为ANSI时间间隔类型)来绕过这错误。——允许溢出被视为零>选择try_multiply(__arg1,最长)从值(One hundred.Y,One hundred.Y),(20.Y,5Y)作为t(__arg1,最长);零One hundred.——在砖暂时禁用ANSI SQL模式容忍错误的溢出。>集ANSI_MODE=假;>选择__arg1*最长从值(One hundred.Y,One hundred.Y),(20.Y,5Y)作为t(__arg1,最长);16One hundred.>集ANSI_MODE=真正的;——在砖运行时暂时禁用ANSI模式容忍错误的溢出。>集火花。sql。ansi。启用=假;>选择__arg1*最长从值(One hundred.Y,One hundred.Y),(20.Y,5Y)作为t(__arg1,最长);16One hundred.>集火花。sql。ansi。启用=真正的;