Je kunt proberen USING . te gebruiken :
De optionele USING clausule specificeert hoe de nieuwe kolomwaarde uit de oude moet worden berekend; indien weggelaten, is de standaardconversie hetzelfde als een toewijzing van het oude gegevenstype naar het nieuwe. Een USING clausule moet worden verstrekt als er geen impliciete of toewijzing is gegoten van oud naar nieuw type.
Dit zou dus kunnen werken (afhankelijk van uw gegevens):
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);
Dit zal mislukken als je iets in code hebt dat kan niet naar numeriek worden gegoten; als het GEBRUIK mislukt, moet u de niet-numerieke gegevens met de hand opschonen voordat u het kolomtype wijzigt.