ich habe in einer Tabelle eine Spalte vom Typ varchar(50), die ich dauerhaft in integer umwandeln will. Die Einträge in dieser Spalte bestehen aus den Zahlen (im Moment als Zeichen) -1 bis +6.
In der Vergangenheit ging das mal mit dem folgenden Statement:
alter table data_standard_pitzer alter column dataclass type integer USING convertToInteger(dataclass);
In der Zwischenzeit wurde die Datenbank auf einen anderen Server migriert und auf Postgresql 8.3.8 aktualisiert. Ich arbeite mit phpPgAdmin 4.2.2.
Die Fehlermeldung:
FEHLER: Funktion converttointeger(character varying) existiert nicht
HINT: Keine Funktion stimmt mit dem angegebenen Namen und den Argumenttypen überein. Sie müssen möglicherweise ausdrückliche Typumwandlungen hinzufügen.
Wie bekommen ich denn eine solche Funktion in PostgreSQL hinein, bzw. wie könnte ich sie mir selbst erstellen?
test=# create table xyz (i varchar(59));
CREATE TABLE
test=*# insert into xyz values (' 1 ');
INSERT 0 1
test=*# alter table xyz alter column i type int using i::int;
ALTER TABLE
test=*# select * from xyz;
i
---
1
(1 row)
test=*# \d xyz;
Table "public.xyz"
Column | Type | Modifiers
--------+---------+-----------
i | integer |