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.