Sie können es mit USING versuchen :
Das optionale USING Klausel gibt an, wie der neue Spaltenwert aus dem alten berechnet wird; Wenn es weggelassen wird, ist die Standardkonvertierung dasselbe wie eine Zuweisungsumwandlung vom alten Datentyp in den neuen. Ein USING -Klausel muss angegeben werden, wenn es keine implizite oder Zuweisungsumwandlung vom alten in den neuen Typ gibt.
Das könnte also funktionieren (abhängig von Ihren Daten):
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);
Dies wird fehlschlagen, wenn Sie irgendetwas in code haben das kann nicht in numerisch umgewandelt werden; Wenn USING fehlschlägt, müssen Sie die nicht numerischen Daten von Hand bereinigen, bevor Sie den Spaltentyp ändern.