🦁
【Silver DBA】SQL*Loaderの概要
SQL*Loader
OSシステム上のデータをOracleデータベースの表にロードするツール。
・SQL*Loaderを起動するにはsqlldr
を実行。
・ロード先の表名やデータファイル形式など、実行するロード処理の内容を制御ファイルに記述。
・制御ファイルの記述内容に従って、データファイルのデータがデータベースの表にロードされる。
・パラメータで DIRECT=trueを指定すると、ダイレクトパスロードが有効化される。
ロードに最適化された方式で、大量のデータを高速にロードできる。
関連ファイル
[データファイル]
ロード対象のデータを含むファイル。テキストファイル、バイナリファイルなど。
[制御ファイル]
データをロードする表や、データファイルの形式などを記載。
[ログファイル]
SQL*Loaderの動作内容が出力される。
[廃棄ファイル]
ロード対象外のレコードが出力されるファイル。
[不良ファイル]
エラーによりロードできなかったレコードが出力されるファイル。
SQL*Loaderエクスプレスモード
SQL*Loaderエクスプレスモードでは、制御ファイルが不要。
コマンドラインでロード対象の表明を指定する。
sqlldr ユーザー名/パスワード TABLE=<ロード対象の表名>
エクスプレスモードの注意点
・ロード対象の表のデータは文字、数値、日時のみ可能。
・データファイルはCSVファイル、タブ区切りファイルなど、
特定の区切り文字で区切られたテキスト形式のファイルのみ可能。
・APPENDモードでロードされる。(ロード対象の表に存在しているデータは削除されない)
エクスプレスモードのロード方法
まず外部表を用いたロード方法を実行し、
できなかった場合、ダイレクトパスロードでロードされる。
[外部表を用いたロード方法]
- SQL*LoaderデータファイルがあるOSディレクトリに対応するディレクトリオブジェクトを作成。
- SQL*Loaderデータファイルのデータを読み出せる外部票を作成。
- 外部表からロード先の表にデータをINSERT。
- 作成した外部表、ディレクトリオブジェクトを削除。
※ディレクトリオブジェクト・外部票の作成権限が必要。
エクスプレスモードのログファイル
・実行した処理に対応するSQL*Loader制御ファイルの内容
・外部表ロード実行時に自動的に内部で実行されるSQL文の情報
が記録される。
Discussion
質問です。
エクスプレスモードはデータファイルのパスは指定してないと思うんですが、どこに配置すればいいのでしょうか。。