PgAdmin'deki bir sütun veri türünü varchar'dan tam sayıya dönüştürmeye çalışırken sorunlu (SQL durumu: 22P02)

Aug 16 2020

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

3 MikeOrganek Aug 16 2020 at 12:21

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.