4.9 オブジェクトをサポートするユーティリティ
この項では、Oracleオブジェクトのサポートを提供する複数のOracleユーティリティについて説明します。
この項には、次の項目が含まれます。
4.9.1 オブジェクト型のインポート/エクスポート
エクスポート・ユーティリティおよびインポート・ユーティリティは、Oracleデータベースへ、またはOracleデータベースから、データを移動します。また、データのバックアップまたはアーカイブ、およびOracle RDBMSの異なるリリースへの移行に役立ちます。
エクスポートおよびインポートは、オブジェクト型をサポートします。エクスポートは、オブジェクト型定義および関連するすべてのデータをダンプ・ファイルに書き込みます。インポートは、ダンプ・ファイルからこれらの項目を再作成します。
オブジェクト表をインポートする場合、デフォルトでOID
が維持されます。
関連項目:
インポートおよびエクスポート・ユーティリティの使用方法は、『Oracle Databaseユーティリティ』を参照してください。
4.9.1.1 タイプ
導出型の定義文はエクスポートされます。インポート時、スーパータイプ定義のインポートが完了する前に、サブタイプを作成できます。この場合、サブタイプを作成するとコンパイル・エラーが発生しますが、無視してください。型のスーパータイプが作成された後、型の再検証が行われます。
4.9.2 SQL*Loader
SQL*Loaderユーティリティは、外部ファイルのデータをデータベース内の表に移動します。
SQL*Loaderが移動するファイルには、INTEGER
、CHAR
、DATE
など基本的なスカラー・データ型で構成されるデータや、行オブジェクトや列オブジェクト(オブジェクト、コレクションまたはREF
属性を持つオブジェクトを含む)、コレクション、LOBなど複雑なユーザー定義データ型が含まれる可能性があります。現在、SQL*Loaderではシングルレベル・コレクションのみがサポートされています。マルチレベル・コレクション(他のコレクションが要素になっているか、他のコレクションが入っているコレクション)のロードに、SQL*Loaderは使用できません。SQL*Loaderは、SQL*Loader DDL文が入っている制御ファイルを使用して、データ・ファイルのフォーマット、内容および位置を記述します。
SQL*Loaderがデータをロードする方法は、2通りあります。
-
従来型パス・ロード:
SQL
INSERT
文およびバインド配列バッファを使用して、データをデータベース表にロードします。 -
ダイレクト・パス・ロード: ダイレクト・パス・ロードAPIを使用して、SQL*Loaderクライアントのかわりに、データ・ブロックを直接データベースに書き込みます。
ダイレクト・パス・ロードはSQLインタフェースを使用しないので、関連するSQL文の処理時にオーバーヘッドが発生しません。したがって、ダイレクト・パス・ロードからは従来型パス・ロードよりも優れたパフォーマンスが通常得られます。
どちらの方法も、サポート対象となっているオブジェクトおよびコレクション・データ型のデータのロードに使用できます。
関連項目:
SQL*Loaderの使用方法は、『Oracle Databaseユーティリティ』を参照してください。