DBAtlas · Veritabanı operasyon atlası

22003: numeric_value_out_of_range

PostgreSQL

Ne demek?

Bir sayısal değer, hedef tipin izin verdiği aralığın dışında. Örneğin bir integer sütununa 2 milyardan büyük bir değer ya da numeric(5,2) sütununa çok büyük bir sayı yazmaya çalışmak.

Neden olur?

smallint/integer/bigint sınırlarının aşılması; numeric(p,s) hassasiyet/ölçek sınırının aşılması; aritmetik taşma (overflow); toplama/çarpma sonucunun tip kapasitesini geçmesi; sequence'in tip üst sınırına ulaşması.

Nasıl çözülür?

Sütun/parametre tipini daha geniş bir tiple değiştirin (integer yerine bigint, numeric hassasiyetini artırın): ALTER TABLE tablo ALTER COLUMN sutun TYPE bigint; Değeri iş kuralına göre yuvarlayın (ROUND) ya da doğrulayın. Ara hesap taşıyorsa ifadeyi numeric'e çevirerek hesaplayın. Sequence taşmasında tipi büyütün.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar