5

数年前、Thomas Kyte はこう言いました (ここ):

私のお気に入りの外部テーブルの使い方:

この非常に大きなファイルをできるだけ早くロードしてください。以前は、スクリプトをパラレル ダイレクト パス ロードに設定していました。上記のスクリプトの起動を調整します。ログ ファイルを調べて、すべてが終了していることを確認します。入力ファイルを分割するか、skip と load を使用してファイルをスライスします。要するに、お尻の痛み。

今:

create table ET parallel;
create table new_table (...) parallel
as
select * from ET;

パラレル ダイレクト パスのロードが簡単になりました。

これが有効な構文でないことを除いて...

Oracle の外部テーブルを使用して「パラレル ダイレクト パス ロード」を実行するにはどうすればよいですか?

4

1 に答える 1

6

外部表の並列機能は多少制限されています。私の知る限り、並行して処理できる同じ形式の複数のファイル (以下を参照)、または固定長形式の単一のファイルが必要です。

CREATE TABLE WORKING_HOURS_EXT
( employee_id       NUMBER(8), 
  project_id        VARCHAR2(20),
  start_time        VARCHAR2(25), 
  end_time         VARCHAR2(25)
) 
ORGANIZATION EXTERNAL 
( 
  TYPE ORACLE_LOADER 
  DEFAULT DIRECTORY loader_data_dir 
  ACCESS PARAMETERS 
  ( 
    records delimited by newline 
    fields terminated by ';' 
    ( employee_id, project_id, start_time, end_time
    ) 
  ) 
  LOCATION ('hours01.txt', 'hours02.txt', 'hours03.txt') 
) 
PARALLEL;

ALTER SESSION ENABLE PARALLEL DML;

MERGE INTO WORKING_HOURS a
USING WORKING_HOURS_EXT b ON (...
于 2011-01-05T18:17:56.817 に答える