Ja veselā skaitļa vērtība pārsniedz noteiktu vērtību, tiks parādīta šī kļūda
- Lai labotu aritmētiskās pārpildes kļūdu, rezultāti ir jāpārvērš no int uz big int datu tipu.
- Varat arī pārvērst visu kolonnu uz big int tipu, lai izvairītos no kļūdas.
Aritmētiskā pārpildes kļūda, pārvēršot izteiksmi par datu tipu int, ir SQL kļūda, un, ja tā notiek, jūsu vaicājums netiks izpildīts, tādējādi neļaujot jums iegūt savus datus.
Tā rezultātā noteiktas jūsu lietotnes daļas nedarbosies pareizi, un tas var radīt papildu problēmas. Tāpēc ir svarīgi nekavējoties novērst šo problēmu, un šajā rokasgrāmatā mēs jums parādīsim labākos veidus, kā to izdarīt.
Kas ir aritmētiskā pārpildes kļūda, pārvēršot izteiksmi par datu tipu int?
Šī kļūda norāda, ka SQL vērtība ir pārāk liela un to nevar apstrādāt ar veselu skaitļu datu tipu. Ja jūsu vērtība ir lielāka par 2 147 483 647, veselu skaitļu datu tips nevarēs to apstrādāt, un tiks parādīta iepriekš minētā kļūda.
Kā novērst aritmētiskās pārpildes kļūdu, pārvēršot izteiksmi par datu tipu int?
1. Konvertējiet vērtību uz bigint
- Atveriet savu kodu.
- Izmantojiet šādu kodu:
SELECT SUM(CAST(balance AS bigint)) FROM Accounts;
- Saglabāt izmaiņas.
Izmantojot komandu CAST, jūs konvertēsit rezultātus no vesela skaitļa uz liela vesela skaitļa datu tipu.
2. Mainiet visu kolonnu
- Atveriet SQL čaulu.
- Tagad palaidiet šādas komandas:
ALTER TABLE your_table_name
ALTER COLUMN balance BIGINT;
- Saglabāt izmaiņas.
Izmantojot šīs komandas, jūs mainīsit visas kolonnas datu tipu no int uz big int, tādējādi palielinot maksimālo atbalstīto vērtību.
- Labojums: Hulu kļūdas kods P-DEV317
- Disney Plus nav derīgas bitu pārraides kļūdas: kā to ātri novērst
- Labojums: mēs tagad nevaram pārbaudīt jūsu e-pastu, Hulu kļūda
- Hulu vietne nav pieejama: kā novērst šo kļūdu
- Labojums: nevar lejupielādēt, lūdzu, jautājiet, lai tas tiktu nosūtīts jums vēlreiz, WhatsApp kļūda
3. Aizstāt count ar count_big
- Atveriet savu kodu.
- Pēc tam atrodiet skaitīšanas līniju, tai vajadzētu izskatīties šādi:
count(*) as count
- Nomainiet to ar šādu:
count_big(*) as count
- Saglabājiet izmaiņas.
Aritmētiskā pārpildes kļūda, pārvēršot izteiksmi par datu tipu int, paziņojums ir pārtraukts kļūda izraisīs lietojumprogrammas avāriju, jo jūsu mainīgie ir pārāk lieli, taču to var viegli atrisināt, tos konvertējot.
Servera kļūdas var būt nopietnas, un mēs to jau esam aplūkojuši 0x80040e14 SQL servera kļūda vienā no mūsu iepriekšējiem ceļvežiem. Nesaderīga OS var arī radīt problēmas ar SQL, un daudzi lietotāji ziņoja, ka SQL Server neatbalsta operētājsistēmu ziņas.
Šīs kļūdas dažkārt var izraisīt datu bāzes bojājumus, un, ja kādreiz saskaraties ar šo problēmu, mums ir ceļvedis, kā to izdarīt labot bojātu datubāzi SQL Server.
Vai kādreiz esat saskāries ar aritmētiskās pārpildes kļūdu, pārveidojot izteiksmi par datu tipu int programmā SQL Server, un kā jūs to labojāt? Paziņojiet mums zemāk esošajos komentāros!