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

前
次

外部表の使用時のデータ型の変換

データを外部表から、または外部表に移動すると、次の3つの場所にある同一の列が、異なるデータ型を持つ可能性があります。

データ・ファイルと外部表の間で変換エラーが発生すると、エラーの発生した行は無視されます。変換エラーおよび制約違反を含む、外部表とデータベース内の列でエラーが発生すると、操作全体が正常に完了されないまま終了します。

データが外部表にアンロードされる際に、ソース表内の列のデータ型が外部表の列のデータ型と一致していない場合、データが変換されます。変換エラーが発生した場合、その時点までに処理されたすべての行がデータ・ファイルに含まれず、データ・ファイルの読取りができなくなる場合があります。変換エラーによって操作が失敗する問題を回避するには、外部表の列のデータ型をデータベースの列のデータ型と一致させます。ただし、外部表はすべてのデータ型をサポートするわけではないため、必ず成功するとはかぎりません。そのような場合、ソース表でサポートされていないデータ型を、外部表でサポートするデータ型に変換する必要があります。たとえば、LONG_TABという名前のソース表にLONG列がある場合、作成される外部表LONG_TAB_XTの対応する列はCLOBである必要があり、外部表を移入するために使用したSELECT副問合せは、列をロードするためにTO_LOB演算子を使用する必要があります。

CREATE TABLE LONG_TAB_XT (LONG_COL CLOB) ORGANIZATION EXTERNAL...SELECT TO_LOB(LONG_COL) FROM LONG_TAB;

注意:

Oracle Database 12cリリース1 (12.1)から、Oracle DatabaseのVARCHAR2NVARCHAR2およびRAWデータ型の最大サイズが32KBに増加しました(COMPATIBLE初期化パラメータが12.0以上に設定され、MAX_STRING_SIZE初期化パラメータがEXTENDEDに設定されている場合)。外部表機能では、この新しい最大サイズがサポートされます。