この章では、SQL*Loaderを起動するために使用するコマンドライン・パラメータについて説明します。この章の内容は、次のとおりです。
この項では、SQL*Loaderの起動方法とパラメータの指定方法について説明します。この章の内容は、次のとおりです。
SQL*Loaderを起動する際に、セッションの特性を確立するためにパラメータを指定します。必要に応じて、パラメータはカンマで区切ることができます。
> sqlldr CONTROL=ulcase1.ctl
Username: scott
Password: password
位置で指定するとは、パラメータ名は入力せずに、値を入力するということです。次の例では、ユーザー名scott
が指定され、その後にulcase1.ctl
という制御ファイルの名前が指定されています。パスワードを入力するように要求されます。
> sqlldr scott ulcase1.ctl
Password: password
キーワードでの指定が使用されると、その後、位置では指定できなくなります。たとえば、次のコマンドラインでは、ulcase1.log
の位置が正しくても、エラーが発生します。
> sqlldr scott CONTROL=ulcase1.ctl ulcase1.log
パラメータを指定しないでSQL*Loaderを起動すると、指定可能なパラメータとそのデフォルト値を示すヘルプ画面が表示されます。
コマンドラインの長さが、システムのコマンドラインの最大長を超える場合は、OPTIONS
句を使用して、一部のコマンドライン・パラメータを制御ファイルに格納できます。
また、パラメータをパラメータ・ファイルとしてグループ化することもできます。このパラメータ・ファイルの名前は、SQL*Loaderの起動時に、PARFILE
パラメータを使用してコマンドラインで指定できます。
パラメータ指定のこれらの代替方法は、同じパラメータを同じ値で繰り返し使用する場合に有効です。
コマンドラインで指定したパラメータ値は、パラメータ・ファイルまたはOPTIONS
句で指定したパラメータ値を上書きします。
ネットワーク接続を介してデータをロードするためにSQL*Loaderを使用するには、SQL*Loaderユーティリティの起動時、接続文字列には接続識別子を指定できます。この識別子では、現行のOracleシステム識別子(SID)によって指定した現行のインスタンスとは別のデータベース・インスタンスを指定できます。接続識別子には、Oracle Net接続記述子または接続記述子にマップするネット・サービス名(通常、tnsnames.ora
ファイルで定義される)を指定できます。接続識別子を使用するには、Oracle Net Listenerが実行中であることが必要です(デフォルト・リスナーを起動するには、lsnrctl start
と入力します)。次に、ユーザーscott
がinst1
という接続識別子を使用してSQL*Loaderを起動する例を示します。
> sqlldr CONTROL=ulcase1.ctl Username: scott@inst1 Password: password
ローカルSQL*Loaderクライアントは接続識別子inst1
(ネット・サービス名)によって定義されるデータベース・インスタンスに接続し、ulcase1.ctl
制御ファイルの指定に従ってデータをロードします。
参照: 接続識別子およびOracle Net Listenerの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。 |
この項では、SQL*Loaderの各コマンドライン・パラメータについて説明します。ここで使用されているコマンドライン・パラメータのデフォルト値および最大値は、UNIXベースのシステムでの値です。これらの値はオペレーティング・システムによって異なります。詳細は、ご使用のオペレーティング・システム固有のOracleマニュアルを参照してください。
デフォルト: .bad
拡張子が付いたデータ・ファイルの名前
BAD
は、SQL*Loaderによって作成される不良ファイルの名前を指定します。このファイルには、挿入中にエラーの原因となったレコード、または形式が不適切なレコードが格納されます。ファイル名を指定しない場合、デフォルトが使用されます。拒否されたレコードがない場合、不良ファイルが自動的に作成されることはありません。
コマンドラインで指定された不良ファイル名は、制御ファイルの最初のINFILE
文に関連する不良ファイルになります。
不良ファイルの名前は、BADFILE
句を使用して、SQL*Loaderの制御ファイル内に指定することもできます。不良ファイル名をコマンドラインだけでなく制御ファイルでも指定した場合は、コマンドラインの値の方が優先されます。
デフォルト: このパラメータのデフォルト値を参照するには、「SQL*Loaderの起動」で説明したとおり、パラメータを指定しないでSQL*Loaderを起動します。
BINDSIZE
は、バインド配列の最大サイズ(バイト単位)を指定します。BINDSIZE
で指定されたバインド配列サイズは、デフォルト・サイズ(システムによって異なる)およびROWS
に基づいて計算されたサイズよりも優先されます。
デフォルト: このパラメータのデフォルト値を参照するには、「SQL*Loaderの起動」で説明したとおり、パラメータを指定しないでSQL*Loaderを起動します。
行数を指定してダイレクト・パス列配列に割り当てます。このパラメータの値は、SQL*Loaderでは計算されません。値を指定するか、またはデフォルトを使用する必要があります。
デフォルト: なし
CONTROL
は、データのロード方法を記述するSQL*Loader制御ファイルの名前を指定します。ファイルの拡張子またはファイル・タイプを指定していない場合は、デフォルトで.ctl
になります。省略すると、SQL*Loaderからファイル名の入力を要求されます。
SQL*Loader制御ファイル名に特殊文字が含まれている場合、オペレーティング・システムによっては、その文字をエスケープする必要があります。また、オペレーティング・システム上でファイル・システム・パスの中にバックスラッシュが使用されている場合は、複数のエスケープ文字を使用するか、または引用符でパスを囲む必要があります。詳細は、ご使用のオペレーティング・システム固有のOracleマニュアルを参照してください。
デフォルト: 拡張子が.dat
の制御ファイル名
DATA
は、ロードするデータが入っているデータ・ファイルの名前を指定します。ファイルの拡張子またはファイル・タイプを指定していない場合は、デフォルトで.dat
になります。
コマンドラインでデータ・ファイルを指定し、INFILE
で制御ファイル内のデータ・ファイルを指定する場合は、コマンドラインで指定されたデータが最初に処理されます。制御ファイル内で指定された最初のデータ・ファイルは無視されます。制御ファイル内で指定された他のすべてのデータ・ファイルは処理されます。
ファイル処理オプションを指定する場合は、制御ファイルからのデータのロード時に、警告メッセージが発行されます。
デフォルト: 使用可能(1000
要素)。日付キャッシュ機能を完全に使用禁止にするには、0
(ゼロ)に設定します。
日付キャッシュは、テキスト文字列から内部の日付書式への変換結果を格納するために使用されます。このキャッシュが有効なのは、テキスト形式から日付書式に変換する場合と比べて、日付の検索コストが非常に低くなるためです。データ・ファイルに同じ日付が繰り返して存在する場合は、日付キャッシュを使用することで、ダイレクト・パス・ロードの速度を向上できます。
DATE_CACHE
は、日付キャッシュ・サイズ(エントリ数)を指定します。たとえば、
DATE_CACHE=5000
を指定すると、作成された日付キャッシュごとに最大5000の一意の日付エントリが含まれます。必要に応じて、すべての表に固有の日付キャッシュが作成されます。日付キャッシュは、表への格納のためにデータ型変換が必要な日付値またはタイムスタンプ値が1つ以上ロードされた場合にのみ作成されます。
日付キャッシュ機能は、ダイレクト・パス・ロードでのみ使用できます。デフォルトでは、この機能は使用可能です。デフォルトの日付キャッシュ・サイズは1000要素です。デフォルトのサイズを使用し、1000を超える一意の入力値をロードすると、日付キャッシュ機能は、この表に対して自動的に使用禁止となります。ただし、デフォルトを変更して0以外の日付キャッシュ・サイズを指定し、キャッシュ量がこのサイズを超えた場合、キャッシュは使用禁止になりません。
ログ・ファイルに含まれている日付キャッシュ統計(エントリ数、ヒット数、ミス数)を使用して、将来、同様のロードを行うときのためにキャッシュのサイズを調整できます。
デフォルト: false
DIRECT
は、従来型パスまたはダイレクト・パスのどちらの方法でデータをロードするかを指定します。true
値はダイレクト・パス・ロードを指定します。false
値は従来型パス・ロードを指定します。
デフォルト: .dsc
拡張子が付いたデータ・ファイルの名前。
DISCARD
は、SQL*Loaderで作成する廃棄ファイル(オプション)を指定します。このファイルには、表に挿入されず、拒否もされなかったレコードが保存されます。
コマンドラインで指定された廃棄ファイル名は、制御ファイルの最初のINFILE
文に関連する廃棄ファイル名となります。つまり、制御ファイル中で指定する廃棄ファイル名よりも、コマンドラインで指定した廃棄ファイル名の方が優先されます。
デフォルト: このパラメータのデフォルト値を参照するには、「SQL*Loaderの起動」で説明したとおり、パラメータを指定しないでSQL*Loaderを起動します。
ERRORS
は、挿入エラーの許容最大数を指定します。発生したエラーの数がERRORS
に指定された値を超えると、SQL*Loaderによりロードが中止されます。エラーを許容しない場合は、ERRORS=0
を設定します。エラーを無制限に許容する場合は、非常に大きい値を指定します。
単一の表をロードする場合、エラーの数がこの上限を超えると、SQL*Loaderによりロードが中止されます。ただし、その前に挿入されたデータはコミットされます。
SQL*Loaderでは、すべての表の間でレコードの整合性を保つように処理されます。つまり、複数の表をロードする場合は、エラーの数がこの上限を超えても、すぐにはロード処理が中止されません。SQL*Loaderでは、複数の表のロードに対して許容最大数のエラーが検出されても、行のロードは続行され、すでに表にロードされた有効な行は確実にすべての表にロードされます。また、拒否された行はすべての表から削除されます。
どのような場合でも、SQL*Loaderでは、エラーになったレコードが不良ファイルに書き込まれます。
デフォルト: NOT_USED
EXTERNAL_TABLE
は、外部表オプションを使用してデータをロードするかどうかをSQL*Loaderに指定します。次の3つの値を指定できます。
NOT_USED
: デフォルト値。従来型パス・モードまたはダイレクト・パス・モードのいずれかを使用して、ロードを行います。
GENERATE_ONLY
: 制御ファイルに記述されているとおり、SQL*Loaderログ・ファイル内の外部表を使用してロードを行うために必要なすべてのSQL文を書き込みます。これらのSQL文は、編集およびカスタマイズできます。実際のロードは、SQL*Loaderを使用せずに、SQL*Plusでこれらの文を実行して、後で行うことができます。
EXECUTE
: 外部表を使用してロードを行うために必要なSQL文を実行します。ただし、SQL文からエラーが返されると、ロードは停止します。文は、実行されたとおりログ・ファイルに書き込まれます。つまり、SQL文からエラーが返されると、ロードに必要な残りのSQL文はログ・ファイルには書き込まれません。
SQL*Loader制御ファイルでEXTERNAL_TABLE
=EXECUTE
パラメータとSEQUENCE
パラメータの両方を使用すると、SQL*Loaderは、データベースの順序を作成し、その順序に従って表をロードした後、その順序を削除します。この方法でロードを実行すると、従来型またはダイレクト・パスによる方法でロードした場合とは異なる結果になります。(順序の作成方法の詳細は、『Oracle Database SQL言語リファレンス』のCREATE
SEQUENCE
に関する項を参照してください。)
注意: EXTERNAL_TABLE パラメータを指定すると、SQL*Loader制御ファイル内の日時データ型(TIMESTAMP など)は自動的にCHAR データ型に変換されて、外部表のdate_format_spec 句が使用されます。詳細は、「date_format_spec」を参照してください。 |
外部表オプションで、データベース内のディレクトリ・オブジェクトを使用して、すべてのデータ・ファイルがどこに格納されるか、および出力ファイル(不良ファイルや廃棄ファイルなど)がどこで作成されるかを指定します。データ・ファイルを含むディレクトリ・オブジェクトには、READ
アクセスが、出力ファイルが作成されるディレクトリ・オブジェクトには、WRITE
アクセスが必要です。データ・ファイルまたは出力ファイル格納用の既存のディレクトリ・オブジェクトがない場合は、SQL*LoaderでSQL文を生成して作成します。したがって、EXECUTE
オプションを指定する場合は、CREATE
ANY
DIRECTORY
権限が必要です。ロード処理の最後にディレクトリ・オブジェクトを削除する場合は、DELETE
ANY
DIRECTORY
権限も必要です。
注意: SQL*LoaderでEXTERNAL_TABLE= EXECUTE 修飾子を指定すると、データのロードに使用可能な外部表が作成された後、INSERT 文が実行され、データがロードされます。外部表のすべてのファイルがディレクトリ・オブジェクト内に存在すると識別される必要があります。SQL*Loaderは、ユーザーがアクセス権限を所有している既存のディレクトリ・オブジェクトを使用します。ただし、SQL*Loaderにより一致するディレクトリ・オブジェクトが検出されない場合は、一時ディレクトリ・オブジェクトの作成が試行されます。新しいディレクトリ・オブジェクトを作成する権限を所有していない場合、この操作は正常に実行されません。
この問題を解決するには、 |
複数表のロードを行う場合は、SQL*Loaderで次の手順を実行します。
任意の表にロードされるデータ・ファイルのすべてのフィールドを記述する表を、データベースに作成します。
INSERT
文を作成して、データの外部表記述からこの表をロードします。
制御ファイルのすべての表にINSERT
文を実行します。
実行例については、事例5にEXTERNAL_TABLE=GENERATE_ONLY
パラメータを追加して実行します。外部表に一意の名前を保証するため、SQL*Loaderではすべてのフィールド用に生成された名前を使用します。これは、フィールド名が制御ファイル内の異なる表の間で一意でないことがあるためです。
デフォルト: なし
FILE
は、エクステントを割り当てるデータベース・ファイルを指定します。このパラメータは、ダイレクト・パスのパラレル・ロードでのみ使用します。SQL*Loaderの異なるプロセスに対するFILE
パラメータの値を変えることによって、データがシステムにロードされるときのディスクの競合を最小限に抑えることができます。
デフォルト: すべてのレコードがロードされます。
LOAD
は、指定した件数のレコードをスキップした後に、ロードする論理レコード件数の最大数を指定します。実際のレコード件数が指定された最大数より少ない場合、エラーは発生しません。
デフォルト: 拡張子が.log
の制御ファイル名
LOG
は、SQL*Loaderによって作成されるログ・ファイルを指定します。このファイルには、ロード処理に関するログ情報が保存されます。
デフォルト: 複数CPUシステムではtrue
で、単一CPUシステムではfalse
。
このパラメータは、ダイレクト・パス・ロードでのみ使用できます。
デフォルトでは、マルチスレッド・オプションは常にtrue
に設定され、複数CPUシステム上で使用可能です。この場合の複数CPUシステムの定義は、2つ以上のCPUを持つ単一システムです。
単一CPUシステムでは、マルチスレッドはデフォルトでfalse
に設定されています。2つの単一CPUシステム間でマルチスレッドを使用するには、マルチスレッドを使用可能にする必要があります。デフォルトでは、使用可能になっていません。マルチスレッドを使用可能にすることによって、サーバー・システムでのストリームのロードと並行して、クライアント・システムでストリームを作成できます。
マルチスレッド機能は、オペレーティング・システムに依存します。すべてのオペレーティング・システムがマルチスレッドをサポートしているわけではありません。
デフォルト: なし
コマンドラインにNO_INDEX_ERRORS
を指定すると、索引がロード中に使用禁止に設定されることがなくなります。索引エラーが検出された場合は、ロードが異常終了します。つまり、1行もロードされず、索引はそのままになります。
NO_INDEX_ERRORS
パラメータは、ダイレクト・パス・ロードでのみ有効です。従来型パス・ロードで指定した場合、このパラメータは無視されます。
デフォルト: なし
PARFILE
は、コマンドラインで頻繁に使用するパラメータを記述したファイルを指定します。たとえば、daily_report.par
というパラメータ・ファイルの内容が、次のとおりだとします。
USERID=scott CONTROL=daily_report.ctl ERRORS=9999 LOG=daily_report.log
セキュリティ上の理由から、パラメータ・ファイルにはUSERID
のパスワードを含めないでください。コマンドラインでパラメータ・ファイルを指定した後、SQL*Loaderによってパスワードを入力するように要求されます。次に例を示します。
sqlldr PARFILE=daily_report.par
Password: password
注意: 通常は問題ありませんが、システムによっては、パラメータ指定の中で等号(=)の前後に空白を挿入できないものもあります。 |
デフォルト: このパラメータのデフォルト値を参照するには、「SQL*Loaderの起動」で説明したとおり、パラメータを指定しないでSQL*Loaderを起動します。
READSIZE
パラメータは、データ・ファイルからデータを読み込む場合にのみ使用されます。制御ファイルからレコードを読み込む場合は、常に64KBという値がREADSIZE
として使用されます。
デフォルトを使用しない場合は、READSIZE
パラメータを使用して読取りバッファのサイズ(バイト単位)を指定できます。許容最大サイズは、プラットフォームによって異なります。
従来型パス・ロードの方法では、バインド配列は、読取りバッファのサイズによって制限されます。そのため、読取りバッファを大きくすると、コミット操作を実行する前に、より多くのデータを読み取ることができるというメリットがあります。
たとえば、READSIZE
に1000000を設定すると、コミットを実行する前に、SQL*Loaderによって、外部のデータ・ファイルから1,000,000バイト単位で読取りを実行できます。
注意: READSIZE にBINDSIZE より小さい値を指定した場合、READSIZE の値は増加します。 |
READSIZE
パラメータは、LOBに影響しません。LOB読取りバッファのサイズは、64KBに固定されています。
詳細は、「BINDSIZE(最大サイズ)」を参照してください。
デフォルト: false
RESUMABLE
パラメータを使用して、再開可能な領域割当てを有効または無効にします。このパラメータはデフォルトでは無効なため、関連するRESUMABLE_NAME
パラメータおよびRESUMABLE_TIMEOUT
パラメータを使用するには、RESUMABLE=true
を設定する必要があります。
参照:
|
デフォルト: 'User USERNAME (USERID), Session SESSIONID, Instance INSTANCEID'
再開可能な文を指定します。この値はユーザー定義のテキスト文字列で、USER_RESUMABLE
またはDBA_RESUMABLE
ビューに挿入して、一時停止されている特定の再開可能な文を識別できます。
RESUMABLE
パラメータをtrue
に設定して、再開可能な領域割当てを有効にしないかぎり、このパラメータは無視されます。
デフォルト: 7200
秒(2時間)
エラー修正に必要な時間を指定します。タイムアウト時間内にエラーを修正できない場合は、文の実行が途中で終了します。
RESUMABLE
パラメータをtrue
に設定して、再開可能な領域割当てを有効にしないかぎり、このパラメータは無視されます。
デフォルト: このパラメータのデフォルト値を参照するには、「SQL*Loaderの起動」で説明したとおり、パラメータを指定しないでSQL*Loaderを起動します。
ROWS
に低い値を指定し、表圧縮を使用してデータを圧縮しようとすると、圧縮比が低下するため注意してください。データの圧縮には、高い値を指定するかデフォルト値を使用することをお薦めします。
従来型パス・ロードの場合のみ: ROWS
パラメータでバインド配列の行数を指定します。行の最大数は65534です。詳細は、「バインド配列および従来型パス・ロード」を参照してください。
ダイレクト・パス・ロードの場合のみ: ROWS
パラメータでデータ・ファイルからデータのセーブ前に読み込む行数を指定します。デフォルトでは、ロード終了時に、すべての行の読取りおよびデータ・セーブが1回実行されます。詳細は、「データ・セーブを使用したデータ損失の防止」を参照してください。1回のセーブで実際に表にロードされる行のおよその数は、ROWS
の値から、最後のセーブ以降に廃棄および拒否されたレコードの数を引いた数です。
注意: 索引構成表(IOT)にデータがロードされる場合、あるいはVARRAY、XML列またはLOBが含まれる表にデータがロードされる場合、ROWS パラメータはダイレクト・パス・ロードで無視されます。これは、ロードはそのまま実行されますが、セーブポイントは処理されないことを意味します。 |
SQL*Loaderを開始すると、使用されているSQL*Loaderのバージョンに関する情報が画面に表示され、ログ・ファイルに書き込まれます。また、SQL*Loader実行中には次の例のようなフィードバック・メッセージも画面に表示されます。
Commit point reached - logical record count 20
SQL*Loaderで次のようなデータ・エラー・メッセージが表示される場合もあります。
Record 4: Rejected - Error on table EMP ORA-00001: unique constraint <name> violated
1つ以上の値を持つSILENT
を指定して、これらのメッセージを抑止できます。
たとえば、画面に通常表示されるヘッダーとフィードバック・メッセージが表示されないようにするには、コマンドラインの引数で次のように指定します。
SILENT=(HEADER, FEEDBACK)
適切な値を使用して、次のいずれかの処理を抑止します(複数も可)。
HEADER
: 画面に通常表示されるSQL*Loaderのヘッダー・メッセージを非表示にします。ただし、ヘッダー・メッセージはログ・ファイルに出力されます。
FEEDBACK
- 画面に通常表示される「commit point reached」フィードバック・メッセージを非表示にします。
ERRORS
: レコードにOracleエラーが発生したためそのレコードが不良ファイルに書き込まれた場合、データ・エラー・メッセージがログ・ファイルに出力されないようにします。ただし、拒否レコード件数は出力されます。
DISCARDS
: レコードが廃棄ファイルに書き込まれた場合に、そのことを示すメッセージがログ・ファイルに出力されないようにします。
PARTITIONS
: パーティション表のダイレクト・ロード中、ログ・ファイルに対するパーティションごとの統計情報の書込みを使用禁止にします。
ALL
: すべての抑止値(HEADER
、FEEDBACK
、ERRORS
、DISCARDS
およびPARTITIONS
パラメータ)を実装します。
デフォルト: レコードは1件もスキップされません。
SKIP
は、ファイルの先頭から何件の論理レコードをロード対象外とするかを指定します。
このパラメータを指定すると、なんらかの理由で中断されたロードが継続されます。このパラメータは、従来型ロードおよび単一表のダイレクト・ロードで使用できます。複数の表のダイレクト・ロードに関しては、各表に対して同じ件数のレコードをロードする場合のみ使用できます。複数の表にそれぞれ異なる件数のレコードをダイレクト・ロードする場合は、使用できません。
WHEN
句を使用し、セカンダリ・データもロード対象となる場合、そのセカンダリ・データは、プライマリ・データ・ファイルのレコードに対してWHEN
句が正常に実行された場合にのみスキップされます。
SKIP_INDEX_MAINTENANCE
パラメータは、ダイレクト・パス・ロードの索引メンテナンスを停止します。これは、従来型パス・ロードには適用できません。このオプションを指定すると、索引キーが付けられた索引パーティションには、索引キーのかわりに索引使用禁止が設定されます。これは、索引セグメントと、その索引が付けられているデータとの整合性がとれないためです。ロードの影響を受けない索引セグメントについては、ロード前の索引使用禁止状態が保持されます。
SKIP_INDEX_MAINTENANCE
パラメータ:
ローカル索引とグローバル索引の両方に適用できます。
索引を持つオブジェクトのパラレル・ロードを実行できます(PARALLEL
パラメータとともに指定)。
グローバル索引を持つ表に単一パーティションをロードできます(INTO TABLE
句でPARTITION
パラメータを指定)。
ロードによって索引使用禁止状態に設定された索引や索引パーティションのリストを(SQL*Loaderログ・ファイルに)作成します。
デフォルト: 初期化パラメータ・ファイルで指定した、Oracle Databaseの構成パラメータSKIP_UNUSABLE_INDEXES
の値。デフォルトのデータベースの設定は、TRUE
です。
SKIP_UNUSABLE_INDEXES
パラメータは、SQL*LoaderとOracle Databaseの両方によって提供されます。SQL*LoaderのSKIP_UNUSABLE_INDEXES
パラメータは、SQL*Loaderコマンドラインで指定します。Oracle DatabaseのSKIP_UNUSABLE_INDEXES
パラメータは、初期化パラメータ・ファイルの構成パラメータとして指定します。相互に与える影響を理解しておく必要があります。
SQL*LoaderコマンドラインでSKIP_UNUSABLE_INDEXES
の値を指定すると、SQL*Loaderは、初期化パラメータ・ファイルに指定されているSKIP_UNUSABLE_INDEXES
構成パラメータの値を上書きします。
SQL*LoaderコマンドラインでSKIP_UNUSABLE_INDEXES
の値を指定しない場合、SQL*Loaderは、初期化パラメータ・ファイルに指定されているSKIP_UNUSABLE_INDEXES
構成パラメータのデータベース設定を使用します。初期化パラメータ・ファイルでSKIP_UNUSABLE_INDEXES
のデータベース設定を指定しない場合、デフォルトのデータベース設定はTRUE
になります。
SKIP_UNUSABLE_INDEXES
の値としてTRUE
を指定すると、索引使用禁止状態の索引が検出された場合、使用禁止状態の索引はスキップされ、ロード処理は続行されます。これによってロード開始前の状態が使用禁止の索引を含む表をロードできます。ロード時に使用禁止状態でない索引は、SQL*Loaderによってメンテナンスされます。ロード時に使用禁止状態の索引はメンテナンスされず、ロード完了時も使用禁止状態のままです。
注意: 一意で使用禁止状態の索引に対しては、索引メンテナンスをスキップできません。この原則は、DML操作の場合にも、ダイレクト・パスでDMLと整合性を持つロードを行う場合にも適用されます。 |
SKIP_UNUSABLE_INDEXES
パラメータは、従来型パス・ロードおよびダイレクト・パス・ロードの両方に適用できます。
デフォルト: このパラメータのデフォルト値を参照するには、「SQL*Loaderの起動」で説明したとおり、パラメータを指定しないでSQL*Loaderを起動します。
ダイレクト・パス・ストリームに対して、サイズをバイト単位で指定します。
デフォルト: なし
USERID
を使用して、各ユーザーのOracleユーザー名とパスワードを指定します。省略すると、システムから入力を要求されます。スラッシュのみを入力すると、デフォルトとしてオペレーティング・システムのログイン名がUSERID
に適用されます。
ユーザーSYS
として接続する場合は、接続文字列にAS SYSDBA
も指定する必要があります。
注意: 文字列AS SYSDBA には空白が含まれるため、一部のオペレーティング・システムでは、接続文字列全体を一重引用符で囲むか、なんらかの方法でリテラルとしてマークする必要があります。また、オペレーティング・システムによっては、コマンドラインの引用符を、バックスラッシュなどでエスケープする必要がある場合もあります。
システムの特殊文字および予約文字の詳細は、ご使用のオペレーティング・システム固有のOracleマニュアルを参照してください。 |
Oracle SQL*Loaderでは、SQL*Loaderの完了後、すぐに実行結果を確認できます。SQL*Loaderでは、実行結果をログ・ファイルに記録するのみでなく、プロセス終了コードでレポートすることもできます。。このOracle SQL*Loaderの機能によって、コマンドラインやスクリプトからSQL*Loaderを起動したときにもその結果を確認できます。表8-1に、様々な結果の終了コードを示します。
表8-1 SQL*Loaderの終了コード
結果 | 終了コード |
---|---|
すべての列が正常にロードされた |
|
すべての行または一部の行が拒否された |
|
すべての行または一部の行が廃棄された |
|
ロードが中断された |
|
コマンドラインまたは構文エラー |
|
SQL*Loaderに対してリカバリ不能なOracleエラー |
|
OS関連エラー(ファイルのオープン/クローズ、mallocなど) |
|
UNIXの場合、終了コードは次のようになります。
EX_SUCC 0 EX_FAIL 1 EX_WARN 2 EX_FTL 3
Windows NTの場合、終了コードは次のようになります。
EX_SUCC 0 EX_FAIL 1 EX_WARN 2 EX_FTL 4
SQL*Loaderが0(ゼロ)以外の終了コードを返した場合、システム・ログ・ファイルおよびSQL*Loaderログ・ファイルで、詳細な診断情報を確認してください。
UNIXでは、シェルの終了コードを調べてロード結果を確認できます。