Jei sveikojo skaičiaus reikšmė viršija tam tikrą vertę, gausite šią klaidą
- Norėdami ištaisyti aritmetinio perpildymo klaidą, turite konvertuoti rezultatus iš int į big int duomenų tipą.
- Arba galite konvertuoti visą stulpelį į big int tipą, kad išvengtumėte klaidos.
Aritmetinė perpildymo klaida konvertuojant išraišką į duomenų tipą int yra SQL klaida, ir jei ji įvyksta, jūsų užklausa nebus vykdoma, todėl negalėsite gauti duomenų.
Dėl to tam tikros programos dalys neveiks tinkamai, o tai gali sukelti papildomų problemų. Todėl svarbu nedelsiant išspręsti šią problemą, o šiame vadove parodysime geriausius būdus, kaip tai padaryti.
Kas yra aritmetinė perpildymo klaida konvertuojant išraišką į duomenų tipą int?
Ši klaida rodo, kad SQL reikšmė per didelė ir jos negalima apdoroti sveikojo skaičiaus duomenų tipu. Jei jūsų reikšmė didesnė nei 2 147 483 647, sveikojo skaičiaus duomenų tipas negalės jo apdoroti ir gausite pirmiau minėtą klaidą.
Kaip ištaisyti aritmetinę perpildymo klaidą konvertuojant išraišką į duomenų tipą int?
1. Konvertuokite vertę į bigint
- Atidarykite savo kodą.
- Naudokite šį kodą:
SELECT SUM(CAST(balance AS bigint)) FROM Accounts;
- Išsaugoti pakeitimus.
Naudodami komandą CAST konvertuosite rezultatus iš sveikojo skaičiaus į didelio sveikojo skaičiaus duomenų tipą.
2. Pakeiskite visą stulpelį
- Atidarykite SQL apvalkalą.
- Dabar paleiskite šias komandas:
ALTER TABLE your_table_name
ALTER COLUMN balance BIGINT;
- Išsaugoti pakeitimus.
Naudodami šias komandas pakeisite viso stulpelio duomenų tipą iš int į big int ir taip padidinsite maksimalią palaikomą reikšmę.
- Pataisymas: „Hulu“ klaidos kodas P-DEV317
- „Disney Plus“ nėra galiojančių pralaidumo klaidų: kaip greitai ją ištaisyti
- Pataisymas: dabar negalime patvirtinti jūsų el. pašto „Hulu“ klaida
- „Hulu“ tinklalapis nepasiekiamas: kaip ištaisyti šią klaidą
- Pataisymas: negaliu atsisiųsti, paprašykite, kad jis būtų išsiųstas jums „WhatsApp“ klaida
3. Pakeiskite skaičių į count_big
- Atidarykite savo kodą.
- Tada suraskite skaičiavimo eilutę, ji turėtų atrodyti taip:
count(*) as count
- Pakeiskite jį taip:
count_big(*) as count
- Išsaugokite pakeitimus.
Aritmetinė perpildymo klaida konvertuojant išraišką į duomenų tipą int, teiginys buvo nutrauktas Dėl klaidos jūsų programa sugenda, nes jūsų kintamieji yra per dideli, tačiau tai galima lengvai išspręsti juos konvertuojant.
Serverio klaidos gali būti rimtos, ir mes jau aptarėme 0x80040e14 SQL serverio klaida viename iš mūsų ankstesnių vadovų. Nesuderinama OS taip pat gali sukelti problemų su SQL, ir daugelis vartotojų pranešė, kad operacinės sistemos nepalaiko SQL serveris žinutes.
Dėl šių klaidų kartais gali būti sugadinta duomenų bazė, o jei kada nors susidursite su šia problema, turime vadovą, kaip tai padaryti pataisyti sugadintą duomenų bazę SQL serveryje.
Ar kada nors susidūrėte su aritmetine perpildymo klaida konvertuojant išraišką į duomenų tipą int SQL serveryje ir kaip ją ištaisėte? Praneškite mums toliau pateiktuose komentaruose!