Puedes intentar usar USING:
La USINGcláusula opcional especifica cómo calcular el nuevo valor de columna a partir del anterior; si se omite, la conversión predeterminada es la misma que una asignación emitida del tipo de datos antiguo a nuevo. Se USINGdebe proporcionar una cláusula si no hay conversión implícita o de asignación del tipo antiguo al nuevo.
Entonces esto podría funcionar (dependiendo de sus datos):
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);
Esto fallará si tiene algo codeque no se puede convertir a numérico; Si el uso falla, tendrá que limpiar los datos no numéricos a mano antes de cambiar el tipo de columna.