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。啟用=真正的;