2

Oracleで次のSQLコマンドを使用して、テーブルのコピーを作成したかったのです。

create table table_backup as select * from paper_search;

私はこのようなエラーに遭遇しました

 [Err] ORA-01652: unable to extend temp segment by 8192 in tablespace

テーブル paper_search のサイズは 20GB です。私はグーグルで検索して、オラクルのTEMPメモリサイズを増やしていることを発見しましたが、これを解決する方法がわかりません。

4

2 に答える 2

1

一時セグメントに十分なスペースが見つからない場合 (Orangecrush の回答を参照)、テーブルを作成して別の手順で入力することを検討してください。

create table table_backup as select * from paper_search where 1=0;

それから

insert into table_backup select * from paper_search where id between :1 and :2;

id の適切な範囲を持つループ内で、各バッチ間でコミットします (そのため、あまり多くの一時スペースは必要ありません)。

これは大まかな解決策であり、要件によっては実行できない場合があります(たとえば、バッチ ジョブの実行中にテーブルでの同時挿入/更新/削除を考慮する必要があるかどうかなど)。

于 2013-02-05T07:33:46.207 に答える
1

一時テーブルスペースがいっぱいです。それを拡張してから、テーブルを作成します。

構文:

ALTER tablespace TEMP add datafile '<path>/temp1.dbf' size 1500M

必要に応じて、パス、名前、およびサイズを変更します。

于 2013-02-05T07:27:33.353 に答える