ORACLE - Spalte umbenennen
Beate Mielke
- datenbank
0 dirk
Hallo ForumerInnen,
nachdem mir es mit viel Mühe gelungen ist, in eine ORACLE-Tabelle eine neue Spalte hinzuzufügen, mußte ich leider feststellen, dass ich mich bei dem Namen der Spalte verschrieben habe.
Gibt es eine einfacheMöglichkeit, den Namer einer Spalte umzubenennen?
Und gibt es eventuell eine deutsche Doku?
Gruss
Beate Mielke
Hallo,
ich sag es ja nur ungern, aber das geht nicht........man kann Spalten weder löschen noch umbennen. Man kann in einer Spalte nur Datatypen und NULL / NOT NULL ändern. Das zweite ist auch schon oft genug mit Problemen belastet.
Also entweder eine neue Spalte mit
ALTER TABLE Tabellenname ADD Spaltenname Datentyp;
und die alte einfach liegenlassen.....oder neue Tabelle
also erst
DROP Tabellenname;
CREATE TABLE Tabellenname
( Feld1 Datentyp [ NOT NULL ],
Feld2 Datentyp ,
Feld3 Datentyp [ NOT NULL ]...);
Für eine Doku mußt du mal in einer Suchmaschine schauen....mehrere Rechenzentren bieten eine Einführung in SQL und eventuell auch Oracle.
Es gibt aber auch eine ganze Menge, Teils auch recht günstige Bücher zu dem Thema.
bis dann.......dirk
Hallo Dirk,
ich sag es ja nur ungern, aber das geht nicht........man kann Spalten weder löschen noch umbennen. Man kann in einer Spalte nur Datatypen und NULL / NOT NULL ändern. Das zweite ist auch schon oft genug mit Problemen belastet.
ich hab's ja geahnt ...
Was die Doku betrifft, im Internet habe ich schon gesucht. Letztendlich landet man immer bei der englisch-sprachigen Original-Doku, die mir nicht gerade gefällt.
Dafür kann man sich mit MySQL-Dokus bzw. -Tutorials totschmeissen.
Danke für Deine Hilfe!
Gruß
Beate Mielke
Hi,
ich sag es ja nur ungern, aber das geht nicht........man kann Spalten weder löschen noch umbennen. Man kann in einer Spalte nur Datatypen und NULL / NOT NULL ändern. Das zweite ist auch schon oft genug mit Problemen belastet.
Wie groß sind die besagten Tabelleninhalte?
Falls die Tabelle nicht signifikant viel Platz im Tablespace einnimmt, geht folgendes ruck-zuck:
1. rename <alteTabelle> to tmp;
2. create table <neueTabelle> (...);
3. insert into <neueTabelle> select * from <alteTabelle>
(Obwohl die Feldnamen nicht passen! Es reicht, wenn die gleichen Datentypen in der gleichen Reihenfolge vorliegen.)
4. drop table <alteTabelle>;
"create table"-statements habe ich grundsätzlich als Quelltextdateien.
ich hab's ja geahnt ...
Richtige Probleme bekommst Du wohl erst, wenn Deine Tabelle über Constraints von anderen Tabellen referenziert wird.
(Und damit hast Du dann auch den Grund, weshalb ein "Spalten-rename" oder ein "Spalten-Löschen" gar nicht völlig trivial zu implementieren wäre ...)
- ähm - irgendwie kann ich ORACLE nicht so richtig leiden - ;-)
Ich schon. ;-)
Ich will zu keiner Datenbank wechseln, die signifikant weniger kann.
mfg - Michael
Hallo Michael,
- rename <alteTabelle> to tmp;
- create table <neueTabelle> (...);
- insert into <neueTabelle> select * from <alteTabelle>
(Obwohl die Feldnamen nicht passen! Es reicht, wenn die gleichen Datentypen in der gleichen Reihenfolge vorliegen.)- drop table <alteTabelle>;
"create table"-statements habe ich grundsätzlich als Quelltextdateien.
Das ist ja ein richtig guter Tip - wird gleich notiert.
Richtige Probleme bekommst Du wohl erst, wenn Deine Tabelle über Constraints von anderen Tabellen referenziert wird.
(Und damit hast Du dann auch den Grund, weshalb ein "Spalten-rename" oder ein "Spalten-Löschen" gar nicht völlig trivial zu implementieren wäre ...)
Das ist wohl einzusehen.
Danke und viele Gruesse
Beate Mielke