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.