Thread datentyp ändern klappt nicht
(9 answers)
Opened by supersucker at 2005-05-20 21:07
Hi,
ich hab eine postgresql-db (v.8) die eine tabelle mit 15 spalten enthält. von diesen 15 spalten sind 4 vom typ float. nun möchte ich diese 4 spalten vom typ float zum typ numeric (15,2) ändern, also mit 15 stellen vor dem komma und 2 stellen nach dem komma. wenn ich nun folgendes einfaches statement ausführe: Code: (dl
)
alter table fraglib alter column x type numeric(15,2); oder Code: (dl
)
alter table fraglib alter column x type numeric; kriege ich die fehlermeldung: Code: (dl
)
ERROR: syntax error at or near "TYPE" at character 36 was ich nicht verstehe, weil wenn ich Code: (dl
)
alter table fraglib alter column x type numeric(15,2); auf meiner datenbank zuhause ausführe klappt. die datenbank auf der es nicht klappt, ist ca. 17 GB gross, die bei mir daheim ist nur ein paar hundert MB gross und enthält zu testzwecken einen auszug der grossen datenbank, die beiden datenbanken sind also bis auf die menge der enthaltenen datensätze exakt identisch.... auch ist mir nicht klar warum ich einen syntax-error erhalte, dass heisst doch eigentlich das schon beim parsen des statements irgendwas schiefläuft, das kann aber nicht sein, da es ja wie schon gesagt bei der kleinen db auch klappt. eine andere möglichkeit wäre das er beim ausführen des statements irgendwann auf einen datensatz trifft den er nicht von float zu numeric umwandeln kann, aber warum krieg ich dann einen syntaxfehler? oder kann es sein das wenn in einem der float-felder ein null-value drinsteht er das dann nicht zu numeric umwandeln kann? ein null-value in den float-feldern ist in der grossen datenbank wahrscheinlich in einigen datensätzen der fall, aber umwandeln müsste er es doch trotzdem können.... und wenn ich sowas mache wie Code: (dl
)
alter table fraglib alter column x type numeric; kann es ja auch nicht an den float-werten liegen weil die dann ja 1:1 in numeric übernommen werden.... danke für jede hilfe....... |