Anda dapat mencoba menggunakan USING
:
Opsi
USING
klausa menentukan cara menghitung nilai kolom baru dari yang lama; jika dihilangkan, konversi default sama dengan penugasan yang dilemparkan dari tipe data lama ke yang baru. AUSING
klausa harus disediakan jika tidak ada pemeran implisit atau penugasan dari tipe lama ke tipe baru.
Jadi ini mungkin berhasil (tergantung data Anda):
alter table presales alter column code type numeric(10,0) using code::numeric;
-- Or if you prefer standard casting...
alter table presales alter column code type numeric(10,0) using cast(code as numeric);
Ini akan gagal jika Anda memiliki sesuatu di code
yang tidak dapat dilemparkan ke numerik; jika USING gagal, Anda harus membersihkan data non-numerik dengan tangan sebelum mengubah jenis kolom.