ヘッダーをスキップ

Oracle Database ユーティリティ
10g リリース2(10.2)

B19211-01
目次
目次
索引
索引

戻る 次へ

7 SQL*Loaderコマンドライン・リファレンス

この章では、SQL*Loaderを起動するために使用するコマンドライン・パラメータについて説明します。この章の内容は、次のとおりです。

SQL*Loaderの起動

SQL*Loaderを起動すると、セッションの特性を確立するために特定のパラメータを指定できます。パラメータは任意の順序で入力できます。オプションとして、カンマで区切ることもできます。パラメータに値を指定するか、場合によっては、値を入力しないでデフォルトを指定できます。

次に例を示します。

SQLLDR CONTROL=sample.ctl, LOG=sample.log, BAD=baz.bad, DATA=etc.dat 
   USERID=scott/tiger, ERRORS=999, LOAD=2000, DISCARD=toss.dsc,
   DISCARDMAX=5

任意のパラメータを指定しないでSQL*Loaderを起動すると、次のようなヘルプ画面が表示されます。使用可能なパラメータおよびそれらのデフォルト値が示されます。

> sqlldr
.
.
.
Usage: SQLLDR keyword=value [,keyword=value,...]

Valid Keywords:

userid -- ORACLE username/password
control -- control file name
log -- log file name
bad -- bad file name
data -- data file name
discard -- discard file name
discardmax -- number of discards to allow (Default all)
skip -- number of logical records to skip (Default 0)
load -- number of logical records to load (Default all)
errors -- number of errors to allow (Default 50)
rows -- number of rows in conventional path bind array or between direct
path data saves
(Default: Conventional path 64, Direct path all)
bindsize -- size of conventional path bind array in bytes (Default 256000)
silent -- suppress messages during run (header,feedback,errors,discards,
partitions)
direct -- use direct path (Default FALSE)
parfile -- parameter file: name of file that contains parameter specifications
parallel -- do parallel load (Default FALSE)
file -- file to allocate extents from
skip_unusable_indexes -- disallow/allow unusable indexes or index partitions
(Default FALSE)
skip_index_maintenance -- do not maintain indexes, mark affected indexes as
unusable (Default FALSE)
commit_discontinued -- commit loaded rows when load is discontinued (Default
FALSE)
readsize -- size of read buffer (Default 1048576)
external_table -- use external table for load; NOT_USED, GENERATE_ONLY, EXECUTE
(Default NOT_USED)
columnarrayrows -- number of rows for direct path column array (Default 5000)
streamsize -- size of direct path stream buffer in bytes (Default 256000)
multithreading -- use multithreading in direct path
resumable -- enable or disable resumable for current session (Default FALSE)
resumable_name -- text string to help identify resumable statement
resumable_timeout -- wait time (in seconds) for RESUMABLE (Default 7200)
date_cache -- size (in entries) of date conversion cache (Default 1000)

PLEASE NOTE: Command-line parameters may be specified either by position or by keywords.
An example of the former case is 'sqlldr scott/tiger foo'; an example of the latter
is 'sqlldr control=foo userid=scott/tiger'.One may specify parameters by position before
but not after parameters specified by keywords.For example, 'sqlldr scott/tiger control=foo
logfile=log' is allowed, but 'sqlldr scott/tiger control=foo log' is not, even though the
position of the parameter 'log' is correct.

参照:

すべてのコマンドライン・パラメータの詳細は、「コマンドライン・パラメータ」を参照してください。 

パラメータ指定の代替方法

コマンドラインの長さが、システムのコマンドラインの最大長を超える場合は、OPTIONS句を使用して、一部のコマンドライン・パラメータを制御ファイルに格納できます。

また、パラメータをパラメータ・ファイルとしてグループ化することもできます。このパラメータ・ファイルの名前は、SQL*Loaderの起動時に、PARFILEパラメータを使用してコマンドラインで指定できます。

パラメータ指定のこれらの代替方法は、同じパラメータを同じ値で繰り返し使用する場合に有効です。

コマンドラインで指定したパラメータ値は、パラメータ・ファイルまたはOPTIONS句で指定したパラメータ値を上書きします。

参照:

 

コマンドライン・パラメータ

この項では、SQL*Loaderの各コマンドライン・パラメータについて説明します。ここで使用されているコマンドライン・パラメータのデフォルト値および最大値は、UNIXベースのシステムでの値です。これらの値はオペレーティング・システムによって異なります。詳細は、ご使用のオペレーティング・システム固有のOracleマニュアルを参照してください。

BAD(不良ファイル)

デフォルト: 拡張子が.badのデータ・ファイル名

SQL*Loaderによって作成される不良ファイルの名前を指定します。このファイルには、挿入中にエラーの原因となったレコード、または形式が不適切なレコードが格納されます。ファイル名を指定しない場合、デフォルトが使用されます。拒否されたレコードがない場合、不良ファイルが自動的に作成されることはありません。

コマンドラインで指定された不良ファイル名は、制御ファイルの最初のINFILE文に関連する不良ファイル名になります。つまり、制御ファイル中で指定した不良ファイル名よりも、コマンドラインで指定した不良ファイル名の方が優先されます。

参照:

不良ファイルの形式の詳細は、「不良ファイルの指定」を参照してください。 

BINDSIZE(最大サイズ)

デフォルト: このパラメータのデフォルト値を参照するには、「SQL*Loaderの起動」で説明したとおり、任意のパラメータを指定しないでSQL*Loaderを起動します。

バインド配列の最大サイズ(バイト単位)を指定します。BINDSIZEで指定されたバインド配列サイズは、デフォルト・サイズ(システムによって異なる)およびROWSに基づいて計算されたサイズよりも優先されます。

参照:

 

COLUMNARRAYROWS

デフォルト: このパラメータのデフォルト値を参照するには、「SQL*Loaderの起動」で説明したとおり、任意のパラメータを指定しないでSQL*Loaderを起動します。

行数を指定してダイレクト・パス列配列に割り当てます。このパラメータの値は、SQL*Loaderでは計算されません。値を指定するか、またはデフォルトを使用する必要があります。

参照:

 

CONTROL(制御ファイル)

デフォルト: なし

データのロード方法を記述する制御ファイルの名前を指定します。ファイルの拡張子またはファイル・タイプを指定していない場合は、デフォルトで.ctlになります。省略すると、SQL*Loaderからファイル名の入力を要求されます。

SQL*Loader制御ファイル名に特殊文字が含まれている場合、オペレーティング・システムによっては、その文字をエスケープする必要があります。また、オペレーティング・システム上でファイル・システム・パスの中にバックスラッシュが使用されている場合は、複数のエスケープ文字を使用するか、または引用符でパスを囲む必要があります。詳細は、ご使用のオペレーティング・システム固有のOracleマニュアルを参照してください。

参照:

SQL*Loader制御ファイルの詳細は、第8章を参照してください。 

DATA(データ・ファイル)

デフォルト: 拡張子が.datの制御ファイル名

ロードするデータが入っているデータ・ファイルの名前を指定します。ファイルの拡張子またはファイル・タイプを指定していない場合は、デフォルトで.datになります。

コマンドラインでデータ・ファイルを指定し、INFILEで制御ファイル内のデータ・ファイルを指定する場合は、コマンドラインで指定されたデータが最初に処理されます。制御ファイル内で指定された最初のデータ・ファイルは無視されます。制御ファイル内で指定された他のすべてのデータ・ファイルは処理されます。

ファイル処理オプションを指定する場合は、制御ファイルからのデータのロード時に、警告メッセージが発行されます。

DATE_CACHE

デフォルト: 使用可能(1000要素)。日付キャッシュ機能を完全に使用禁止にするには、0(ゼロ)に設定します。

DATE_CACHEは、日付キャッシュ・サイズ(エントリ数)を指定します。次に例を示します。DATE_CACHE=5000を指定すると、作成された日付キャッシュごとに最大5000の一意の日付エントリを含めることができます。必要に応じて、すべての表に固有の日付キャッシュが作成されます。日付キャッシュは、表への格納のためにデータ型変換が必要な日付値またはタイムスタンプ値が1つ以上ロードされた場合にのみ作成されます。

日付キャッシュ機能は、ダイレクト・パス・ロードでのみ使用できます。デフォルトでは、この機能は使用可能です。デフォルトの日付キャッシュ・サイズは1000要素です。デフォルトのサイズを使用し、1000を超える一意の入力値をロードすると、日付キャッシュ機能は、この表に対して自動的に使用禁止となります。ただし、デフォルトを変更して0以外の日付キャッシュ・サイズを指定し、キャッシュ量がこのサイズを超えた場合、キャッシュは使用禁止になりません。

ログ・ファイルに含まれている日付キャッシュ統計(エントリ数、ヒット数、ミス数)を使用して、将来、同様のロードを行うときのためにキャッシュのサイズを調整できます。

参照:

「日付キャッシュの値の指定」 

DIRECT(データ・パス)

デフォルト: false

従来型パスまたはダイレクト・パスのどちらの方法でデータをロードするかを指定します。true値はダイレクト・パス・ロードを指定します。false値は従来型パス・ロードを指定します。

参照:

第11章「従来型パス・ロードおよびダイレクト・パス・ロード」 

DISCARD(ファイル名)

デフォルト: 拡張子が.dscのデータ・ファイル名

SQL*Loaderで作成する廃棄ファイル(オプション)を指定します。このファイルには、表に挿入されず、拒否もされなかったレコードが保存されます。

コマンドラインで指定された廃棄ファイル名は、制御ファイルの最初のINFILE文に関連する廃棄ファイル名となります。つまり、制御ファイル中で指定する廃棄ファイル名よりも、コマンドラインで指定した廃棄ファイル名の方が優先されます。

参照:

廃棄ファイルの形式の詳細は、「廃棄レコードおよび拒否レコード」を参照してください。 

DISCARDMAX(整数)

デフォルト: ALL

廃棄レコードの最大数を指定します。廃棄レコード件数がここで指定した数に達すると、ロードは中止されます。最初の廃棄レコードで中止するには、1を指定します。

ERRORS(エラーの許容最大数)

デフォルト: このパラメータのデフォルト値を参照するには、「SQL*Loaderの起動」で説明したとおり、任意のパラメータを指定しないでSQL*Loaderを起動します。

挿入エラーの許容最大数を指定します。発生したエラーの数がERRORSに指定された値を超えると、ロード処理が中止されます。エラーを許容しない場合は、ERRORS=0を設定します。エラーを無制限に許容する場合は、非常に大きい値を指定します。

単一の表をロードする場合、エラーの数がこの上限を超えると、ロード処理が中止されます。ただし、その前に挿入されたデータはコミットされます。

SQL*Loaderでは、すべての表の間でレコードの整合性を保つように処理されます。つまり、複数の表をロードする場合は、エラーの数がこの上限を超えても、すぐにはロード処理が中止されません。SQL*Loaderでは、複数の表のロードに対して許容最大数のエラーが検出されても、行のロードは続行され、すでに表にロードされた有効な行は確実にすべての表にロードされます。また、拒否された行はすべての表から削除されます。

どのような場合でも、SQL*Loaderでは、エラーになったレコードが不良ファイルに書き込まれます。

EXTERNAL_TABLE

デフォルト: NOT_USED

外部表オプションを使用してデータをロードするかどうかをSQL*Loaderに指定します。EXTERNAL_TABLEには、次の3つの値を指定できます。

外部表オプションで、データベース内のディレクトリ・オブジェクトを使用して、すべてのデータ・ファイルがどこに格納されるか、および出力ファイルがどこで作成されるかを指定します。データ・ファイルを含むディレクトリ・オブジェクトには、READアクセスが、出力ファイルが作成されるディレクトリ・オブジェクトには、WRITEアクセスが必要です。データ・ファイルまたは出力ファイル格納用の既存のディレクトリ・オブジェクトがない場合は、SQL*LoaderでSQL文を生成して作成します。したがって、EXECUTEオプションを指定する場合は、CREATE ANY DIRECTORY権限が必要です。ロード処理の最後にディレクトリ・オブジェクトを削除する場合は、DELETE ANY DIRECTORY権限も必要です。


注意:

SQL*LoaderでEXTERNAL_TABLE=EXECUTE修飾子を指定すると、データのロードに使用可能な外部表が作成された後、INSERT文が実行され、データがロードされます。外部表のすべてのファイルがディレクトリ・オブジェクト内に存在すると識別される必要があります。SQL*Loaderは、ユーザーがアクセス権限を所有している既存のディレクトリ・オブジェクトを使用します。ただし、一致するディレクトリ・オブジェクトが検出されない場合は、一時ディレクトリ・オブジェクトの作成が試行されます。新しいディレクトリ・オブジェクトを作成する権限を所有していない場合、この操作は正常に実行されません。

この問題を解決するには、EXTERNAL_TABLE=GENERATE_ONLYを使用して、SQL*Loaderで実行が試行されるSQL文を作成します。これらのSQL文を抽出し、参照するディレクトリ・オブジェクトを、アクセス権限を所有しているディレクトリ・オブジェクトに変更します。その後、これらのSQL文を実行します。 


複数表のロードを行う場合は、SQL*Loaderで次の手順を実行します。

  1. 任意の表にロードされるデータ・ファイルのすべてのフィールドを記述する表を、データベースに作成します。

  2. INSERT文を作成して、データの外部表記述からこの表をロードします。

  3. 制御ファイルのすべての表にINSERT文を実行します。

実行例については、事例5にEXTERNAL_TABLE=GENERATE_ONLYパラメータを追加して実行します。外部表に一意の名前を保証するため、SQL*Loaderではすべてのフィールド用に生成された名前を使用します。これは、フィールド名が制御ファイル内の異なる表の間で一意でないことがあるためです。

参照:

 

EXTERNAL_TABLEの使用上の制限

EXTERNAL_TABLE修飾子を使用する場合、次の制限が適用されます。

FILE(ロード先ファイル)

デフォルト: なし

FILEは、エクステントを割り当てるデータベース・ファイルを指定します。このパラメータは、パラレル・ロードでのみ使用します。SQL*Loaderの異なるプロセスに対するFILEパラメータの値を変えることによって、データがシステムにロードされるときのディスクの競合を最小限に抑えることができます。

参照:

「パラレル・データ・ロード・モデル」 

LOAD(ロードするレコード)

デフォルト: すべてのレコードがロードされます。

LOADは、指定した件数のレコードをスキップした後に、ロードする論理レコード件数の最大数を指定します。実際のレコード件数が指定された最大数より少ない場合、エラーは発生しません。

LOG(ログ・ファイル)

デフォルト: 拡張子が.logの制御ファイル名

LOGは、SQL*Loaderによって作成されるログ・ファイルを指定します。このファイルには、ロード処理に関するログ情報が保存されます。

MULTITHREADING

デフォルト: 複数CPUシステムではtrueで、単一CPUシステムではfalse

このパラメータは、ダイレクト・パス・ロードでのみ使用できます。

デフォルトでは、マルチスレッド・オプションは常にtrueに設定され、複数CPUシステム上で使用可能です。この場合の複数CPUシステムの定義は、2つ以上のCPUを持つ単一システムです。

単一CPUシステムでは、マルチスレッドはデフォルトでfalseに設定されています。2つの単一CPUシステム間でマルチスレッドを使用するには、マルチスレッドを使用可能にする必要があります。デフォルトでは、使用可能になっていません。マルチスレッドを使用可能にすることによって、サーバー・システムでのストリームのロードと並行して、クライアント・システムでストリームを作成できます。

マルチスレッド機能は、オペレーティング・システムに依存します。すべてのオペレーティング・システムがマルチスレッドをサポートしているわけではありません。

参照:

「複数CPUシステムのダイレクト・パス・ロードの最適化」 

PARALLEL(パラレル・ロード)

デフォルト: false

ダイレクト・ロード時に複数の同時セッションによって同じ表にデータをロードできるかどうかを指定します。

参照:

「パラレル・データ・ロード・モデル」 

PARFILE(パラメータ・ファイル)

デフォルト: なし

コマンドラインで頻繁に使用するパラメータを記述したファイルを指定します。たとえば、コマンドラインで次のように指定します。:

sqlldr PARFILE=example.par

パラメータ・ファイルには次のような内容を記述できます。

USERID=scott/tiger
CONTROL=example.ctl
ERRORS=9999
LOG=example.log


注意:

通常は問題ありませんが、システムによっては、パラメータ指定の中で等号(=)の前後に空白を挿入できないものもあります。 


READSIZE(読取りバッファ・サイズ)

デフォルト: このパラメータのデフォルト値を参照するには、「SQL*Loaderの起動」で説明したとおり、任意のパラメータを指定しないでSQL*Loaderを起動します。

READSIZEパラメータは、データ・ファイルからデータを読み込む場合にのみ使用されます。制御ファイルからレコードを読み込む場合は、常に64KBという値がREADSIZEとして使用されます。

デフォルトを使用しない場合は、READSIZEパラメータを使用して読取りバッファのサイズ(バイト単位)を指定できます。指定可能な最大サイズは、ダイレクト・パス・ロードおよび従来型パス・ロードの両方で20MBです。

従来型パス・ロードの方法では、バインド配列は、読取りバッファのサイズによって制限されます。そのため、読取りバッファを大きくすると、コミット操作を実行する前に、より多くのデータを読み取ることができるというメリットがあります。

次に例を示します。

sqlldr scott/tiger CONTROL=ulcas1.ctl READSIZE=1000000

この場合、コミットを実行する前に、SQL*Loaderによって、外部のデータ・ファイルから1,000,000バイト単位で読取りを実行できます。


注意:

READSIZEBINDSIZEより小さい値を指定した場合、 READSIZEの値は増加します。 


READSIZEパラメータは、LOBに影響しません。LOB読取りバッファのサイズは、64KBに固定されています。

詳細は、「BINDSIZE(最大サイズ)」を参照してください。

RESUMABLE

デフォルト: false

RESUMABLEパラメータを使用して、再開可能な領域割当てを有効または無効にします。このパラメータはデフォルトでは無効なため、関連するRESUMABLE_NAMEパラメータおよびRESUMABLE_TIMEOUTパラメータを使用するには、RESUMABLE=trueを設定する必要があります。

参照:

  • 『Oracle Database概要』

  • 『Oracle Database管理者ガイド』

 

RESUMABLE_NAME

デフォルト: 'User USERNAME (USERID), Session SESSIONID, Instance INSTANCEID'

再開可能な文を指定します。この値はユーザー定義のテキスト文字列で、USER_RESUMABLEまたはDBA_RESUMABLEビューに挿入して、一時停止されている特定の再開可能な文を識別できます。

RESUMABLEパラメータをtrueに設定して、再開可能な領域割当てを有効にしないかぎり、このパラメータは無視されます。

RESUMABLE_TIMEOUT

デフォルト: 7200秒(2時間)

エラー修正に必要な時間を指定します。タイムアウト時間内にエラーを修正できない場合は、文の実行が途中で終了します。

RESUMABLEパラメータをtrueに設定して、再開可能な領域割当てを有効にしないかぎり、このパラメータは無視されます。

ROWS(1回にコミットする行数)

デフォルト: このパラメータのデフォルト値を参照するには、「SQL*Loaderの起動」で説明したとおり、任意のパラメータを指定しないでSQL*Loaderを起動します。

ROWSに低い値を指定し、表圧縮を使用してデータを圧縮しようとすると、圧縮比が低下するため注意してください。データの圧縮には、高い値を指定するかデフォルト値を使用することをお薦めします。

従来型パス・ロードの場合のみ: ROWSでバインド配列の行数を指定します。詳細は、「バインド配列および従来型パス・ロード」を参照してください。

ダイレクト・パス・ロードの場合のみ: ROWSでデータ・ファイルからデータのセーブ前に読み込む行数を指定します。デフォルトでは、ロード終了時に、すべての行の読取りおよびデータ・セーブが1回実行されます。詳細は、「データ・セーブを使用したデータ損失の防止」を参照してください。1回のセーブで実際に表にロードされる行のおよその数は、ROWSの値から、最後のセーブ以降に廃棄および拒否されたレコードの数を引いた数です。


注意:

索引構成表(IOT)にデータがロードされる場合、あるいはVARRAY、XML列またはLOBが含まれる表にデータがロードされる場合、ROWSパラメータは無視されます。これは、ロードはそのまま実行されますが、セーブポイントは処理されないことを意味します。 


SILENT(フィードバック・モード)

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)

適切な値を使用して、次のいずれかの処理を抑止します(複数も可)。

SKIP(スキップされるレコード)

デフォルト: レコードは1件もスキップされません。

ファイルの先頭から何件の論理レコードをロード対象外とするかを指定します。

SKIPを指定すると、なんらかの理由で中断されたロードが継続されます。このパラメータは、従来型ロードおよび単一表のダイレクト・ロードで使用できます。複数の表のダイレクト・ロードに関しては、各表に対して同じ件数のレコードをロードする場合のみ使用できます。複数の表にそれぞれ異なる件数のレコードをダイレクト・ロードする場合は、使用できません。

WHEN句を使用し、セカンダリ・データもロード対象となる場合、そのセカンダリ・データは、プライマリ・データ・ファイルのレコードに対してWHEN句が正常に実行された場合にのみスキップされます。

参照:

「中断されたロード」 

SKIP_INDEX_MAINTENANCE

デフォルト: false

ダイレクト・パス・ロードの索引メンテナンスを停止します。これは、従来型パス・ロードには適用できません。このオプションを指定すると、索引キーが付けられた索引パーティションには、索引キーのかわりに索引使用禁止が設定されます。これは、索引セグメントと、その索引が付けられているデータとの整合性がとれないためです。ロードの影響を受けない索引セグメントについては、ロード前の索引使用禁止状態が保持されます。

SKIP_INDEX_MAINTENANCEパラメータ:

SKIP_UNUSABLE_INDEXES

デフォルト: 初期化パラメータ・ファイルで指定した、Oracleデータベースの構成パラメータSKIP_UNUSABLE_INDEXESの値。デフォルトのデータベースの設定は、TRUEです。

SKIP_UNUSABLE_INDEXESパラメータは、SQL*LoaderとOracleデータベースの両方によって提供されます。SQL*LoaderのSKIP_UNUSABLE_INDEXESパラメータは、SQL*Loaderコマンドラインで指定します。Oracleデータベースの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と整合性を持つロードを行う場合にも適用されます。 


従来型パス・ロードおよびダイレクト・パス・ロードの両方に適用できます。

STREAMSIZE

デフォルト: このパラメータのデフォルト値を参照するには、「SQL*Loaderの起動」で説明したとおり、任意のパラメータを指定しないでSQL*Loaderを起動します。

ダイレクト・パス・ストリームに対して、サイズをバイト単位で指定します。

参照:

「列配列の行数およびストリーム・バッファ・サイズの指定」 

USERID(ユーザー名/パスワード)

デフォルト: なし

各ユーザーのOracleユーザー名/パスワードを指定します。省略すると、システムから入力を要求されます。スラッシュのみを入力すると、デフォルトとしてオペレーティング・システムのログイン名がUSERIDに適用されます。

また、ユーザーSYSとして接続する場合は、接続文字列にAS SYSDBAを指定する必要があります。次に例を示します。

sqlldr \'SYS/password AS SYSDBA\' sample.ctl


注意:

この例では、接続文字列全体が一重引用符およびバックスラッシュで囲まれています。これは、文字列AS SYSDBAに空白が含まれるため、ほとんどのオペレーティング・システムで、文字列全体を一重引用符で囲むか、なんらかの方法でリテラルとしてマークする必要があるためです。オペレーティング・システムによっては、コマンドラインの一重引用符自体をエスケープする必要がある場合もあります。この例では、バックスラッシュがエスケープ文字として使用されます。バックスラッシュがない場合、SQL*Loaderで使用されるコマンドライン解析機能での一重引用符として認識されるため、一重引用符はSQL*Loaderを起動する前に削除されてしまいます。

システムの特殊文字および予約文字の詳細は、ご使用のオペレーティング・システム固有のOracleマニュアルを参照してください。 


終了コードによる結果の検査と表示

Oracle SQL*Loaderでは、SQL*Loaderの完了後、すぐに実行結果を確認できます。プラットフォームによっては、SQL*Loaderの実行結果はログ・ファイルに記録されるのみでなく、プロセス終了コードにも通知されます。このOracle SQL*Loaderの機能によって、コマンドラインやスクリプトからSQL*Loaderを起動したときにもその結果を確認できます。表7-1に、それぞれの結果に対応する終了コードを示します。

表7-1    SQL*Loaderの終了コード 
結果  終了コード 

すべての列が正常にロードされた 

EX_SUCC 

すべての行または一部の行が拒否された 

EX_WARN 

すべての行または一部の行が拒否された 

EX_WARN 

ロードが中断された 

EX_WARN 

コマンドラインまたは構文エラー 

EX_FAIL 

SQL*Loaderに対してリカバリ不能なOracleエラー 

EX_FAIL 

OS関連エラー(ファイルのオープン/クローズ、mallocなど) 

EX_FAIL 

UNIXの場合、終了コードは次のようになります。

EX_SUCC 0
EX_FAIL 1
EX_WARN 2
EX_FTL  3

Windows NTの場合、終了コードは次のようになります。

EX_SUCC 0
EX_WARN 2
EX_FAIL 3
EX_FTL  4

SQL*Loaderが0(ゼロ)以外の終了コードを返した場合、システム・ログ・ファイルおよびSQL*Loaderログ・ファイルで、詳細な診断情報を確認してください。

UNIXでは、シェルの終了コードを調べてロード結果を確認できます。たとえば、SQL*Loaderコマンドをスクリプトで使用して、スクリプト内で終了コードを確認できます。

#!/bin/sh 
sqlldr scott/tiger control=ulcase1.ctl log=ulcase1.log 
retcode=`echo $?` 
case "$retcode" in 
0) echo "SQL*Loader execution successful" ;; 
1) echo "SQL*Loader execution exited with EX_FAIL, see logfile" ;; 
2) echo "SQL*Loader execution exited with EX_WARN, see logfile" ;; 
3) echo "SQL*Loader execution encountered a fatal error" ;; 
*) echo "unknown return code";; 
esac


戻る 次へ
Oracle
Copyright © 2005 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引