2017-03-14 1 views
0

Ich bin ziemlich neu in Orakel. Mein derzeitiges Szenario ist, dass ich eine NOT NULL-Spalte hinzufügen und ihren Wert auf "EE" aktualisieren muss. Dies geschieht unter Verwendung des folgenden Skripts.Update nur 1000 Datensätze auf einmal in Orakel

ALTER TABLE CSA.CSA_CALL_AUDIT ADD CSA_CALL_TYPE varchar2(10); 
update CSA.CSA_CALL_AUDIT set CSA_CALL_TYPE = 'EE'; 
ALTER table CSA.CSA_CALL_AUDIT modify CSA_CALL_TYPE not null; 

Meine Anforderung besteht darin, 1000 Datensätze nur zu einem Zeitpunkt zu aktualisieren. Insgesamt hat die Tabelle 39000 Datensätze.

+2

Warum nur 1000 auf einmal? – BobC

+1

39000 Datensätze ist keine große Anzahl von Datensätzen. Verwenden Sie nur eine einzige UPDATE-Anweisung. – APC

Antwort

0

IF EE ist ein Standardwert ist dies der performative Weg, um diese Änderung zu machen:

ALTER TABLE CSA.CSA_CALL_AUDIT ADD CSA_CALL_TYPE varchar2(10) 
     default 'EE' not null; 

Oracle hat einige Magie im Datenverzeichnis, ohne die Zeilen überhaupt zu berühren. (Mindestens in 11g und später, nicht sicher, ob sie diese Verbesserung früher eingeführt.)

Aber trotzdem, 39000 Datensätze ist keine große Anzahl von Datensätzen. Wenn Sie ein aktuelles UPDATE ausgeben müssen, verwenden Sie einfach eine einzige Anweisung. Es wird nicht lange dauern.

Verwandte Themen