Możesz spróbować użyć USING
:
Opcjonalne USING
klauzula określa, jak obliczyć nową wartość kolumny ze starej; jeśli zostanie pominięty, domyślna konwersja jest taka sama, jak rzutowanie przypisania ze starego typu danych na nowy. USING
klauzula musi być podana, jeśli nie ma niejawnego lub przypisania rzutowanego ze starego na nowy typ.
Może to zadziałać (w zależności od Twoich danych):
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);
To się nie powiedzie, jeśli masz coś w code
którego nie można rzucić na liczby; jeśli USING nie powiedzie się, będziesz musiał ręcznie wyczyścić dane nieliczbowe przed zmianą typu kolumny.