PgAdmin'deki bir sütun veri türünü varchar'dan tam sayıya dönüştürmeye çalışırken sorunlu (SQL durumu: 22P02)
character varyingVeri türüne sahip bir sütunu, integerbu Postgres komut dosyasını çalıştırarak dönüştürmeye çalışıyorum :
ALTER TABLE tbl.test ALTER COLUMN "XX" TYPE integer USING ("XX"::integer);
ve şu hatayı alıyorum:
HATA: tamsayı için geçersiz giriş sözdizimi: "XX" SQL durumu: 22P02
Birisi bu sorunu çözmeme yardım edebilir mi lütfen?
Yanıtlar
Aldığınız hataya dayanarak, XXbir integer. .Düzenlemeden önce bu değerleri düzeltmeniz gerekecektir alter table.
Bu sorgu ile yanlış değerlerinizi bulun:
select "XX" from tbl.test where "XX" !~ '^-{0,1}\d+$';
!~Olduğu NOTregex maç. Normal ifade ile değerin başlangıcına ^tutturulur -{0,1}, sıfır veya bir kısa çizgi karakteriyle eşleşen isteğe bağlı bir eksi işaretini hesaba katar ve ardından değerin sonuna kadar kalan karakterlerin tümünün rakamlarla olmasını sağlar \d+$.
Herhangi değerler XXbu model alınır maç için başarısız ve masa güncelleyerek veya değiştirerek ya onlarla nasıl başa anlayabiliriz using, aramalarınızdan parçasını alter table.