プライマリ・コンテンツに移動
Oracle® Databaseユーティリティ
12cリリース1 (12.1.0.2)
B71303-09
目次へ移動
目次
索引へ移動
索引

前
次

データ型の変換

制御ファイルに指定したデータ型で、データ・ファイル中のデータをどのように解釈するかを、SQL*Loaderに対して指定します。一方、サーバーでは、これとは別にデータベース中の列に対してデータ型を定義します。これらの2つのデータ型を対応付ける手がかりとなるのが、制御ファイル中に指定している列名です。

SQL*Loaderでは、入力ファイル中のフィールドからデータが抽出されます。抽出処理は、制御ファイルに指定したデータ型に基づいて行われます。次にSQL*Loaderでは、そのフィールドがサーバーに送信されます。送信されたフィールドは、該当する列に(行挿入配列の一部として)格納されます。

SQL*Loaderまたはサーバーでは、変換の必要なデータに対してデータ変換が行われ、適切な内部形式でデータが格納されます。これには、データ・ファイルのキャラクタ・セットとデータベースのキャラクタ・セットが異なる場合に、データ・ファイルのデータをデータベース用に変換する機能も含まれます。

注意:

SQL*Loaderの従来型パスを使用して、データ・ファイルの文字データをLONG RAW列にロードする場合、その文字データはHEX文字列として解釈されます。SQLは、HEX文字列をバイナリ表現に変換します。ここで、4000バイトより長い文字列は、SQL HEXTORAW変換演算子のバイト制限を超えていることに注意してください。エラーが返されます。SQL*Loaderはその行を拒否してロードを続行します。

ファイルのデータのデータ型は、Oracle表の列のデータ型と同じである必要はありません。データ型が一致していない場合、Oracle Databaseサーバーで自動的に変換が行われます。ただし、変換が正常に実行されたか、エラーは発生していないかについては実行後に確認する必要があります。たとえば、CHARデータ型のデータ・ファイル・フィールドをNUMBERデータ型のデータベース列にロードする場合、文字フィールドの内容が有効な数値を表していることを確認する必要があります。

注意:

SQL*Loaderには、NUMBERまたはVARCHAR2などのOracle内部データ型に関するデータ型指定は定義されていませんSQL*Loaderのデータ型として扱えるのはテキスト・エディタで作成できるデータ(文字データ型)、および標準プログラミング言語で作成できるデータ(システム固有のデータ型)のみです。ただし、NUMBERおよびVARCHAR2のようなデータ型は、SQL*Loaderでは認識されませんが、これらのデータ型またはその他のデータ型のデータベース列に、Oracle Databaseで変換可能なデータをロードすることはできます。