2010-12-02 7 views

Antwort

1

Sie hinzufügen, löschen und umbenennen Spalten ohne Problem.

Caveats,

eine Spalte mit einem Standardwert Hinzufügen zwingt die Datenbank eine Update-Anweisung für vorhandene Zeilen zu erteilen. Seien Sie vorsichtig auf großen Tischen oder die Ladung wird spitzen.

Umbenennen einer Spalte kann Ihre App zu brechen. Planen Sie dies, aber ansonsten sollte es Ihnen gut gehen. Beachten Sie außerdem, dass Sie bei Abfragen, die versuchen, auf die Spalte zuzugreifen, Fehler generieren, wenn Sie die Dinge nicht ordnungsgemäß planen.

2

Sie können fast alle Änderungen auf einer laufenden Instanz vornehmen. Natürlich würde ich es nicht empfehlen, dies mit USERS im System zu tun.

Das heißt, Oracle 11.2 hat eine killer neue Funktion namens EBR, Edition-Based-Redefinition. Stellen Sie sich vor, Sie könnten DDL-Änderungen "begehen" und "zurücksetzen". Das könnte abhängig von den Umständen nützlich sein.

+0

Wenn ich dies tun müsste (besonders bei einer großen, häufig verwendeten Tabelle), würde ich die Aufgabe definitiv planen, wenn sich Benutzer nicht auf dem System befinden oder die Anwendung für ein Wartungsfenster herunterfahren. – HLGEM

+0

EBR ist massiv komplex und ist eine zusätzliche Lizenzoption. Ich kann nur an einige Fälle denken, wenn das praktisch ist. – erbsock

+0

Ich verstand EBR, ein integraler Bestandteil der Datenbank zu sein, könnte aber irren. Und "massiv komplex" kann unwichtig sein, wenn die Verwendung der Eigenschaft notwendig ist. Es war nur eine Option. –

1

können Sie diese Dinge tun. Wenn die Datenbank einen Grund findet, die Änderung nicht zuzulassen, erhalten Sie ein nettes nastygram mit einem coolen Fehlercode, den Sie überprüfen können, was Sie als nächstes tun müssen.

Sie haben weniger Probleme, wenn keine anderen Benutzer runnign Abfragen oder keine Jobs im Hintergrund tc ausgeführt werden.

2

Online-Änderungen (dh während andere Sitzungen aktiv sind) durchgeführt werden kann DBMS_REDEFINITION mit (beschrieben here, here und here), aber das ist eine Enterprise Edition feature

+0

Das sieht sehr nützlich aus. Haben Sie aufgrund der Neukompilierung von Paketen jemals eine Transaktion gescheitert? Das ist normalerweise unser größtes Problem beim Ändern der aktiven Datenbank. Immer merkwürdiger scheint die 11i-Sitzung ihre user_id zu verlieren, so dass fnd_global.user_id -1 zurückgibt. – JOTN