ダイレクト・パス・ロードを使用するには、次の条件を満たしている必要があります。
ロードする表はクラスタ化できません。
ロードする表は、INSERTでアクティブなOracle Virtual Private Database (VPD)ポリシー含むことができません。
ロードするセグメントに未処理のアクティブ・トランザクションを含むことはできません。
この条件が満たされているかどうかを確認するには、MONITOR
TABLE
というOracle Enterprise Managerコマンドを使用して、ロードする表のオブジェクトIDを検索します。次に、MONITOR
LOCK
コマンドを使用して、表にロックがかけられているかどうか調べます。
Oracle9iより前のリリースのデータベースでは、クライアントとサーバーが同じリリースである場合のみ、SQL*Loaderのダイレクト・パス・ロードを実行できます。また、Oracle9iのデータのダイレクト・パス・ロードは、以前のリリースのデータベースに対しては実行できません。たとえば、ダイレクト・パス・ロードを使用して、リリース9.0.1のデータベースからリリース8.1.7のデータベースにデータをロードすることはできません。
Oracle9i以上では、クライアントとサーバーのリリースが異なる場合にも、SQL*Loaderのダイレクト・パス・ロードを実行できます。ただし、両方がリリース9.0.1以上で、クライアントのリリースは、サーバーのリリース以下である必要があります。たとえば、リリース9.0.1のデータベースからリリース9.2のデータベースへのダイレクト・パス・ロードを実行できます。ただし、リリース10.0.0のデータベースからリリース9.2のデータベースへのデータのロードに、ダイレクト・パス・ロードを使用することはできません。
次の機能は、ダイレクト・パス・ロードでは使用できません。
BFILE
列のロード
ロード時のCREATE SEQUENCE
の使用。これは、ダイレクト・パスではINSERT
文が生成されないため、ダイレクト・パス・ロードでは、次の値をフェッチするSQLが生成されないことが理由です。