2017-03-14 12 views
0

私はoracleにとってかなり新しいです。私の現在のシナリオでは、NOT NULL列を追加し、その値を 'EE'に更新する必要があります。これは、以下のスクリプトを使用して行われます。oracleで一度に1000レコードしか更新しない

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; 

私の要件は、一度に1000レコードだけを更新することです。合計で、テーブルには39000のレコードがあります。

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

Oracleがですべての行を触れることなく、データ・ディクショナリ内のいくつかの魔法を行います。

+2

一度に1000個しかないのはなぜですか? – BobC

+1

39000レコードは多数のレコードではありません。ただ1つのUPDATEステートメントを使用してください。 – APC

答えて

0

EE IFがこの変更を行うのほとんど遂行的な方法であるデフォルト値です。 (少なくとも11g以降では、以前にこの機能拡張を導入したかどうかは不明です。)

しかし、とにかく39000レコードは多数のレコードではありません。実際のUPDATEを発行する必要がある場合は、ただ1つのステートメントを使用してください。それは長くかかりません。

関連する問題