CREATE EXTERNAL TABLE ステートメント
表は通常はデータベース内に存在しますが、外部表は、区切り文字で区切られたテキスト・ベースのファイルとして、または固定長形式のファイルとしてデータベース外部に存在します。
- データを照会する機能を保持しながら、そのデータをデータベースの外部に保管します。 データベースから外部ファイルにデータをアンロードするには、次のいずれかの SQL ステートメントで外部表をターゲット表として指定します。
- INSERT SQL
- SELECT INTO SQL
- CREATE EXTERNAL TABLE AS SELECT SQL
- 外部ファイルからデータベース内の表にデータをロードします。 ロード中に、キャスト、結合、列のドロップなどの操作を実行してデータを操作できます。 外部表からデータベースにデータをロードするには、他の表の場合と同様に、SELECT SQL ステートメントの FROM 節を使用します。
- データを他のアプリケーションに転送します。
抽出、変換、ロード (ETL) プロセスに外部表を使用する利点は、プレーン SQL を使用して当該プロセスを実行できることです。 SQL ベースの ETL プロセスは任意の SQL クライアントから開始できるため、特殊な ETL ツールを必要としません。
- 名前付き
- 外部表には、通常の表と同様に名前とカタログ項目があります。
- 一時
- 外部表には
SYSTET<number>
という形式のシステム生成名があり、カタログ項目はありません。 例えば、照会の結果を保持する一時外部表がシステムによって作成されることがあります。 このような表の存続期間は、照会が存在する期間です。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込むことも、動的 SQL ステートメントを使用して発行することもできます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。
許可
- CREATETAB 権限
- 以下のいずれかの特権または権限:
- 表スペースでの USE 特権
- SYSADM 権限
- SYSCTRL 権限
- 以下のいずれかの特権または権限:
- データベースに対する IMPLICIT_SCHEMA 権限 (表の暗黙または明示スキーマ名がない場合)
- スキーマに対する CREATEIN 特権 (表のスキーマ名が既存のスキーマを指す場合)
- スキーマに対する SCHEMAADM 権限 (表のスキーマ名が既存のスキーマを指す場合)
- 許可 ID は表階層のルート表の所有者と同じでなければなりません。
- 許可 ID が持つ特権に、表階層のルート表が含まれるスキーマに対する SCHEMAADM 権限が含まれている必要があります。
- 許可 ID が持つ特権に、DBADM 権限が含まれている必要があります。
構文
このステートメントの構文は、作成される外部表の特性によって異なります。- 以下の構文を使用して、新規外部表の表定義をカタログ内に作成します。 表名の指定は必須であるため、結果の外部表は名前付き表になります。 ターゲット・ファイルを識別するには、DATAOBJECT オプションまたは FILE_NAME オプションを指定する必要があります。
- 以下の構文を使用して、既存の表を新規の外部表のテンプレートとして使用し、その表にソース表の内容を取り込みます。 このステートメントが表名を明示的に指定する場合、結果の外部表は名前付き表になります。そうでない場合、結果の外部表は一時表になります。 ファイル名は、
file-name
パラメーター、DATAOBJECT オプション、または FILE_NAME オプションのいずれかで指定する必要があります。
説明
- table-name
- 外部表の名前。 暗黙または明示の修飾子を含む名前は、カタログに既に記述されている表、ビュー、ニックネーム、または別名を指定するものであってはなりません。 スキーマ名を SYSIBM、SYSCAT、SYSFUN、または SYSSTAT にすることはできません (SQLSTATE 42939)。 ファイル名
- 作成する外部表が格納されるファイル (またはファイルとして扱うことができる任意のメディア) の完全修飾名。 このパラメーターを指定する場合、DATAOBJECT オプションおよび FILE_NAME オプションは指定できません。 列定義
- 列の属性を定義します。
- column-name
- 表を構成する列の名前を指定します。 名前を修飾したり、表の複数の列に対して同じ名前を使用したりすることはできません (SQLSTATE 42711)。 組み込みタイプ (built-in-type)
- 以下の組み込みデータ・タイプのいずれか。
- SMALLINT
- 短精度整数。
- [INTEGER | INT]
- 長精度整数。
- BIGINT
- 64 ビット整数。
- [DECIMAL | DEC | NUMERIC | NUM] (precision-integer、 scale-integer)
- 10 進数。
- precision integer は、総桁数を指定します。 1 から 31 の範囲内でなければなりません。 デフォルトは 5 です。
- scale integer は、小数点以下の桁数を指定します。 負にすることも、precision より大きくすることもできません。 デフォルトは 0 です。
- FLOAT (整数)
- 単精度または倍精度の浮動小数点数。 指定の長さの範囲に応じて次のように処理されます。
- 1 から 24 の場合、数値で単精度が使用されます。
- 25 から 53 の場合、数値で倍精度が使用されます。
FLOAT の代わりに次を指定できます。- REAL
- 単精度浮動小数点数。
- DOUBLE
- 倍精度浮動小数点数。
- DOUBLE PRECISION
- 倍精度浮動小数点数。
- FLOAT
- 倍精度浮動小数点数。
- DECFLOAT(精度-整数)
- 10 進浮動小数点数。 precision integer は総桁数 (16 または 34) を指定します。 デフォルトは 34 です。
- [CHARACTER | CHAR] (整数 [OCTETS | CODEUNITS32])
- 指定したコード単位数の固定長文字ストリング。 この数は 1 から 255 (OCTETS) または 1 から 63 (CODEUNITS32) の範囲にすることができます。 デフォルトは 1 です。
- [VARCHAR | CHARACTER VARYING | CHAR VARYING] (integer [OCTETS | CODEUNITS32])
- 指定したコード単位数の最大長の、可変長文字ストリング。 この数は 1 から 32672 (OCTETS) または 1 から 8168 (CODEUNITS32) の範囲にすることができます。
- FOR BIT DATA
- 列の内容をビット (バイナリー) データとして扱うように指定します。 他のシステムとのデータ交換の過程で、 コード・ページ変換は行われません。 比較は、データベース照合シーケンスに関係なくバイナリーで行われます。
- [CLOB | CHARACTER LARGE OBJECT | CHAR LARGE OBJECT] (integer [K] [OCTETS | CODEUNITS32])
- 指定したコード単位数の最大長の、文字ラージ・オブジェクト・ストリング。 デフォルトの最大長は 65,535 バイトです。長さの整数に 1024 を乗算する場合は、 K (kilo) 乗数を指定します。
- K 乗数を使用するかどうかに関係なく、結果の長さは、外部表の CLOB 列の最大長 (65,535 OCTETS、32,767 CODEUNITS16、または 16,383 CODEUNITS32) によって制限されます。 64K OCTETS と 16K CODEUNITS32 は、最大長をそれぞれ 1 超えているため、許可されないことに注意してください。
- データ・タイプと長さ指定の間、または長さ整数と K 乗数の間には、任意の数のスペース (ゼロ・スペースを含む) を使用できます。 例えば、以下の指定内容はすべて同等であり、有効です。
CLOB(50K) CLOB(50 K) CLOB (50 K)
- K 乗数は、大文字でも小文字でも指定できます。
Unicode データベースでは、文字ストリング・データ・タイプのデフォルトのストリング単位は、NLS_STRING_UNITS グローバル変数または string_units データベース構成パラメーターの値によって決定されます。 Unicode 以外のデータベースでは、文字ストリング・データ・タイプのデフォルトのストリング単位は OCTETS です。
- OCTETS
- 長さ属性の単位がバイトであることを指定します。
- CODEUNITS32
- 長さ属性の単位が Unicode UTF-32 コード単位であることを指定します。このコード単位は、文字数でのカウント数に近似します。 これは、データ・タイプの基となるコード・ページには影響を与えません。 データ値の実際の長さは、データが UTF-32 に変換されたかのように UTF-32 コード単位をカウントすることで決定されます。 CODEUNITS32 は、Unicode データベースでのみ指定できます (SQLSTATE 560AA)。
- GRAPHIC (整数 [CODEUNITS16 | CODEUNITS32])
- 指定の長さの固定長 GRAPHIC ストリング。1 から 127 の 2 バイト、1 から 127 の CODEUNITS16、または 1 から 63 の CODEUNITS32 の範囲で指定できます。 デフォルト長は 1 です。
- VARGRAPHIC (整数 [CODEUNITS16 | CODEUNITS32])
- 指定の最大長の、可変長 GRAPHIC ストリング。1 から 16336 の 2 バイト、1 から 16336 の CODEUNITS16、または 1 から 8168 の CODEUNITS32 の範囲で指定できます。
- DBCLOB (整数 [K] [CODEUNITS16 | CODEUNITS32])
- 文字ラージ・オブジェクト・ストリング (最大長を 2 バイト、Unicode UTF-16 コード単位、または Unicode UTF-32 コード単位で指定)。 デフォルトの最大長は 2 バイトの 32,767 です。長さの整数に 1024 を乗算する場合は、 K (kilo) 乗数を指定します。
- K 乗数を使用するかどうかに関係なく、結果の長さは、外部表の DBCLOB 列の最大長 (32,767 CODEUNITS16 または 16,383 CODEUNITS32) によって制限されます。 32K CODEUNITS16 と 16K CODEUNITS32 は、最大長をそれぞれ 1 超えているため、許可されないことに注意してください。
- データ・タイプと長さ指定の間、または長さ整数と K 乗数の間には、任意の数のスペース (ゼロ・スペースを含む) を使用できます。 例えば、以下の指定内容はすべて同等であり、有効です。
DBCLOB(50K) DBCLOB(50 K) DBCLOB (50 K)
- K 乗数は、大文字でも小文字でも指定できます。
Unicode データベースでは、文字ストリング・データ・タイプのデフォルトのストリング単位は、NLS_STRING_UNITS グローバル変数または string_units データベース構成パラメーターの値によって決定されます。 Unicode 以外のデータベースでは、文字ストリング・データ・タイプのデフォルトのストリング単位は CODEUNITS16 です。
- CODEUNITS16
- 長さ属性の単位が Unicode UTF-16 コード単位であることを指定します。このコード単位は、2 バイトでのカウント数と同じです。 CODEUNITS16 は、Unicode データベースでのみ指定できます (SQLSTATE 560AA)。
- CODEUNITS32
- 長さ属性の単位が Unicode UTF-32 コード単位であることを指定します。 これは、データ・タイプの基となるコード・ページには影響を与えません。 データ値の実際の長さは、データが UTF-32 に変換されたかのように UTF-32 コード単位をカウントすることで決定されます。 CODEUNITS32 は、Unicode データベースでのみ指定できます (SQLSTATE 560AA)。
- [NATIONAL CHARACTER | NATIONAL CHAR | NCHAR] (整数)
- 指定の長さの固定長ストリング。 デフォルト長は 1 です。
NATIONAL CHARACTER タイプは、ストリング単位も定義する nchar_mapping データベース構成パラメーターの値に基づいて、固定長文字ストリングまたは固定長 GRAPHIC ストリングのいずれかにマップされます。
- [NATIONAL CHARACTER VARYING | NATIONAL CHAR VARYING | NCHAR VARYING | NVARCHAR] (整数)
- 指定の最大長の可変長ストリング。
NATIONAL CHARACTER VARYING タイプは、ストリング単位も定義する nchar_mapping データベース構成パラメーターの値に応じて、可変長文字ストリングまたは可変長 GRAPHIC ストリングのいずれかにマップされます。
- [NATIONAL CHARACTER LARGE OBJECT | NCHAR LARGE OBJECT | NCLOB] (integer [K])
- ラージ・オブジェクト・ストリング (最大長を指定)。 デフォルトの最大長は 2 バイトの 16,383 です。
このデータ・タイプは、ストリング単位も定義する nchar_mapping データベース構成パラメーターの現行値に応じて、文字ラージ・オブジェクト (CLOB) または 2 バイト文字ラージ・オブジェクト (DBCLOB) のいずれかにマップされます。 長さの整数に指定できる値、および K (キロ) 乗数の使用方法については、CLOB パラメーターまたは DBCLOB パラメーター (いずれか該当する方) の説明を参照してください。
- BINARY (整数)
- 指定の長さの固定長バイナリー・ストリング。1 から 255 バイトの範囲でなければなりません。 デフォルト長は 1 です。
- [VARBINARY | BINARY VARYING] (整数)
- 指定した最大長の可変長バイナリー・ストリング。1 から 32672 バイトの範囲でなければなりません。
- [BLOB | BINARY LARGE OBJECT] (integer [K])
- 指定したコード単位数の最大長の、バイナリー・ラージ・オブジェクト・ストリング。 デフォルトの最大長は 65,535 バイトです。長さの整数に 1024 を乗算する場合は、 K (kilo) 乗数を指定します。
- K 乗数を使用するかどうかに関係なく、結果の長さは、外部表の BLOB 列の最大長 (65,535 バイト) によって制限されます。 64K は最大長を 1 超えているため、許可されないことに注意してください。
- データ・タイプと長さ指定の間、または長さ整数と K 乗数の間には、任意の数のスペース (ゼロ・スペースを含む) を使用できます。 例えば、以下の指定内容はすべて同等であり、有効です。
BLOB(50K) BLOB(50 K) BLOB (50 K)
- K 乗数は、大文字でも小文字でも指定できます。
- 日数
- 日付。
- 時刻
- 時刻。
- TIMESTAMP(integer) または TIMESTAMP
- タイム・スタンプ。 この整数は、秒未満の小数点以下の桁数を 0 (秒) から 12 (ピコ秒) で指定します。 デフォルトは 6 (マイクロ秒) です。
- BOOLEAN
- ブール値。
- LIKE table-name1 または view-name または nickname
- 表の列の名前と記述が、指定された表 (table-name1)、ビュー (view-name)、またはニックネーム (nickname) の列と同じであることを指定します。 指定された表、ビュー、またはニックネームは、カタログ内にあるか、宣言済み一時表でなければなりません。 型付き表または型付きビューを指定することはできません (SQLSTATE 428EC)。LIKE を使用すると、n 列が暗黙的に定義されます。n は、 指定した表、ビューまたはニックネームにおける列数です (指定した表では暗黙的な隠し列を含む)。 既存の表の暗黙的な隠し列に対応する新規表の列も、暗黙的な隠し列と定義されます。 暗黙的な定義は、以下に示すように LIKE の後に何が指定されるかによって左右されます。
- 表が指定されると、暗黙的な定義には、その表のそれぞれの列の列名、データ・タイプ、非表示属性、および NULL 可能特性が設定されます。 EXCLUDING COLUMN DEFAULTS を指定しないと、列のデフォルト値も入ります。
- ビューが指定されると、暗黙的な定義には、そのビューに定義した全選択のそれぞれの結果列の列名、データ・タイプ、および NULL 可能特性が設定されます。 ビュー列のデータ・タイプは、表の列に対して有効なデータ・タイプである必要があります。
- ニックネームが指定されると、暗黙的な定義には、そのニックネームのそれぞれの列の列名、データ・タイプ、および NULL 可能特性が設定されます。
- 保護対象表を指定すると、新しい表は、その指定した表と同じセキュリティー・ポリシーと保護対象列を継承します。
- 表が指定されていて、その表に行開始列、行終了列、またはトランザクション開始 ID 列が含まれている場合、新しい表の対応する列はソース列のデータ・タイプのみを継承します。 新規列は生成列とは見なされません。
- 期間が含まれる表が指定されると、新しい表は期間定義を継承しません。
- システム期間テンポラル表が指定される場合、新しい表はシステム期間テンポラル表ではありません。
- random by generation 方式を使用するランダム分散表が指定され、作成される新しい表が同じ表分散を共有しない場合、ランダム分散値の生成に使用される RANDOM_DISTRIBUTION_KEY列は含まれません。
copy-attributes 節に基づいて、列のデフォルト属性を組み込んだり除外したりすることができます。 この暗黙的な定義には、指定した表、ビュー、およびニックネームの他の属性は含まれません。 したがって、新しい表には、主キー、ユニーク制約、外部キー制約、参照整合性制約、トリガー、索引、ORGANIZE BY 指定、PARTITIONING KEY 指定はいずれもありません。
表が LIKE 節内で定義されていて、その表に ROW CHANGE TIMESTAMP 列が含まれている場合、新規表の対応する列は ROW CHANGE TIMESTAMP 列のデータ・タイプのみを継承します。 新規列は生成列とは見なされません。
表が指定される場合、その表の行レベルまたは列レベルのアクセス制御がアクティブになると、これは新しい表で継承されません。
- オプション
- 以下のオプションは、外部表ファイルへのデータのロード、または外部表ファイルからのデータの取得を制御します。 各オプションの値はテキスト・ストリングであり、大/小文字の区別はありません。
- BINARYNUMERICS
- ASCII 文字表現ではなく、2 進形式で数値データを入力することを指定します。 他の非数値データには影響しません。 テキスト形式の固定長形式データでのみサポートされます。
- TRUE または ON
数値データ (DECIMAL タイプを除く) は、2 進形式で入力する必要があります。
サポートされる数値タイプは、SMALLINT、INT、BIGINT、REAL、および DOUBLE です。 整数型 (SMALLINT、INT、および BIGINT) 間で行われる変換を除き、データ型間の変換は行われません。
データ長は、ターゲット列の定義と一致する必要があります (ただし、整数変換は例外です。例えば、2、4、および 8 バイトは、すべて BIGINT 列の有効なゾーン長です)。
データ・ファイル内のすべての数値入力は、ロード操作が実行されているプラットフォームに関係なく、ビッグ・エンディアンであると見なされます。
REAL および DOUBLE 値は IEEE 浮動小数点形式でなければなりません。
- FALSE または OFF
- 数値データは、標準 ASCII 文字表現で入力する必要があります。
- BOOLSTYLE または BOOLEAN_STYLE
- ロード操作時には、すべてのブール値で同じスタイルが使用されている必要があります。 次のオプションは、使用するブール・スタイルを指定します。
- 1_0 (これはデフォルト値です)
- T_F
- Y_N
- YES_NO
- TRUE_FALSE
- CARDINALITY
- 戻されると予想される行数の見積もりをオーバーライドするゼロ以外の正整数の値。
- CCSID
- 入力データ・ファイルのコード化文字セット ID (CCSID)。 この値には CCSID 仕様からの任意の有効な整数値を指定できます。 デフォルト値はありません。 ENCODING オプションの値が UTF8、 LATIN9、または INTERNAL の場合、CCSID オプションと ENCODING オプションは相互に排他的です。日時に使用されるスタイルは、CCSID が指定されているかどうかによって異なります。
- CCSID が指定されていて、DATESTYLE、TIMESTYLE、DATEDELIM、および TIMEDELIM が指定されていない場合、DATE_FORMAT、TIME_FORMAT、および TIMESTAMP_FORMAT の値またはデフォルトが使用されます。
- CCSID が指定されておらず、TIMESTAMP_FORMAT、DATE_FORMAT、および TIME_FORMAT が指定されていない場合、DATESTYLE、TIMESTYLE、DATEDELIM、および TIMEDELIM の値またはデフォルト値が使用されます。
- COMPRESS
- ロード操作またはアンロード操作の場合に、データ・ファイルのデータが圧縮されるかどうか。
- GZIP
- データ・ファイルのデータは、GZIP 圧縮アルゴリズムを使用して圧縮されます。
- いいえ
- データ・ファイルのデータは圧縮されません。 これがデフォルトです。
- LZ4
- データ・ファイルのデータは、LZ4 圧縮アルゴリズムを使用して圧縮されます。
- CRINSTRING
- エスケープされていない復帰 (CR) 文字または復帰改行 (CRLF) 文字を解釈する方法:
- TRUE または ON
- エスケープされていない CR 文字は、レコード区切り文字ではなくデータとして解釈されます。
- FALSE または OFF
- エスケープされていない CR は、レコード区切り文字として解釈されます。 これがデフォルトです。
- CTRLCHARS
- CHAR または VARCHAR フィールドで、ASCII 値の 1 から 31 を許可するかどうか。 NULL 文字、CR 文字、および LF 文字はエスケープする必要があります。 指定可能な値は以下のとおりです。
- TRUE または ON
- CHAR または VARCHAR フィールドで ASCII 値の 1 から 31 を使用できます。
- FALSE または OFF
- CHAR または VARCHAR フィールドで ASCII 値の 1 から 31 を使用できません。 これがデフォルトです。
- DATAOBJECT または FILE_NAME
- 作成する外部表が格納されるファイル (またはファイルとして扱うことができる任意のメディア) の完全修飾名。 このオプションは、表名の直後にファイルの名前が指定されていない場合は必須です。指定されている場合は、使用できません。
REMOTESOURCE オプションが LOCAL (デフォルト値) に設定され、 extbl_strict_io 構成パラメーターが NO に設定されている場合、外部表ファイルへのパスは絶対パスであり、 extbl_location 構成パラメーターで指定されたパスの 1 つでなければなりません。 それ以外の場合、外部表ファイルへのパスは、表定義者の許可 ID が後に続く extbl_location 構成パラメーターで指定されたパスに対する相対パスです。 例えば、 extbl_location が
/home/xyz
に設定され、表定義者の許可 ID がuser1
である場合、外部表ファイルへのパスは/home/xyz/user1/
に対する相対パスになります。ファイル名は有効な UTF-8 ストリングでなければなりません。
ロード操作の場合は、以下の条件が適用されます。- 対象のファイルが既に存在していなければなりません。
- 必要な権限:
- 外部表が名前付き外部表である場合、所有者にそのファイルに対する読み取り権限と LOGDIR ディレクトリーに対する書き込み権限が必要です。
- 外部表が一時外部表である場合、ステートメントの許可 ID にそのファイルに対する読み取り権限と LOGDIR ディレクトリーに対する書き込み権限が必要です。
- 対象のファイルが存在する場合は上書きされます。
- 必要な権限:
- 外部表が名前付き外部表である場合、所有者にこのファイルのディレクトリーに対する読み取り権限と書き込み権限が必要です。
- 外部表が一時外部表である場合、ステートメントの許可 ID にこのファイルのディレクトリーに対する読み取り権限と書き込み権限が必要です。
- DATEDELIM
- DATESTYLE オプションで指定された形式に従って、日付のコンポーネントを区切る区切り文字。 空ストリングを指定する場合、日付コンポーネント間に区切り文字はありません。また、日と月は 2 桁の数値として指定する必要があります。 DATESTYLE が MONDY または MONDY2 に設定されている場合、デフォルトの DATEDELIM 値はスペースです。 TIMESTAMP_FORMAT オプションと DATEDELIM オプションは相互に排他的です。
- DATESTYLE
- 日付フォーマットの解釈方法。 1 から 9 の範囲の日または月の場合、1 桁、2 桁、またはスペースとその後に続く単一の桁を使用します。 DATEDELIM オプションがスペースの場合、日付の後にコンマを指定できます。 次の場合には、エラーが生じます。
- 日、月、または年にゼロを指定する
- 存在しない日付を指定する (例えば、8 月 32 日や 2 月 30 日など)。
表 1. DateStyle オプションに指定できる値。 次の例は、DATEDELIM が「-」に設定されている場合に、2014 年 3 月 21 日という日付がどのように表されるかを示しています。 値 説明 例 YMD 年 (4 桁)、月 (2 桁)、日 (2 桁)。 これがデフォルトです。 2014-03-21 DMY 日 (2 桁)、月 (2 桁)、年 (4 桁)。 21-03-2014 MDY 月 (2 桁)、日 (2 桁)、年 (4 桁)。 03-21-2014 MONDY 月 (3 文字)、日 (2 桁)、年 (4 桁)。 Mar 21 2014 DMONY 日 (2 桁)、月 (3 文字)、年 (4 桁)。 21-Mar-2014 Y2MD 年 (2 桁)、月 (2 桁)、日 (2 桁)。 アンロードではサポートされません。 14-03-21 DMY2 日 (2 桁)、月 (2 桁)、年 (2 桁)。 アンロードではサポートされません。 21-03-14 MDY2 月 (2 桁)、日 (2 桁)、年 (2 桁)。 アンロードではサポートされません。 03-21-14 MONDY2 月 (3 文字)、日 (2 桁)、年 (2 桁)。 アンロードではサポートされません。 Mar 21 14 DMONY2 日 (2 桁)、月 (3 文字)、年 (2 桁)。 アンロードではサポートされません。 21-Mar-14 - DATETIMEDELIM
- TIMESTAMP データ・タイプの日付構成要素と時刻構成要素を区切る 1 バイト文字。
- DATE_FORMAT
- データ・ファイルの日付フィールドの形式。 値は、 TIMESTAMP_FORMAT スカラー関数で受け入れられる任意の日付形式ストリングにすることができます。 デフォルトは YYYY-MM-DD です。 DATE_FORMAT オプションと DATEDELIM オプションまたは DATESTYLE オプションは相互に排他的です。
- DECIMALDELIM または DECIMAL_CHARACTER
- データ・タイプ FLOAT、DOUBLE、TIME、および TIMESTAMP の小数点区切り文字。 許可される値は、
','
および'.'
です。 - DECPLUSBLANK
- アンロード操作時に正の 10 進値を表す方法を指定します。
- DELIMITER または COLUMN_DELIMITER
- 入力レコードまたは出力レコードのフィールドを区切るために使用する文字。 デフォルトは垂直バー (
'|'
) です。以下のいずれかの方法で、7 ビットの ASCII 範囲内の文字 (10 進値 1 ‑ 127) を指定できます。- 単一文字として (例えば、
DELIMITER ';'
) - 対応する ASCII 10 進値 (例えば、
DELIMITER 59
またはDELIMITER '59'
) を指定する。 - 対応する ASCII 16 進値を指定する (例えば、
DELIMITER x'3B'
)。
10 進値の範囲 128 から 255 は、対応する ASCII 10 進値または 16 進値を指定することにより、ISO 文字セットの入力ファイルでのみサポートされます。 入力ファイルが UTF8 文字セットの場合、この区切り値の範囲はサポートされません。
- 単一文字として (例えば、
- ENCODING
- ファイル内のデータのタイプ。
- UTF8
- ファイルは、 すべての文字データに UTF8 エンコードを使用します。
- LATIN9
- ファイルは、 すべての文字データに LATIN9 エンコードを使用します。
- INTERNAL
- ファイルは UTF8 と LATIN9 の両方のエンコードを混合して使用しているか、使用されているエンコードのタイプが不明です。 システムではデータを検査し、必要に応じてデータをエンコードします。 このデータ検査によって全体的なパフォーマンスが低下するため、この値は必要な場合にのみ使用してください。 これがデフォルトです。
- INTERNAL
- これはデフォルト・オプションです。
- DBCS_GRAPHIC
- この値は、ロード操作に限り使用できます。アンロード操作には使用できません。 この値を指定する場合は、CCSID オプションも指定する必要があります。 ロード操作時に、GRAPHIC または VARGRAPHIC タイプのフィールドは、指定された CCSID の 2 バイト文字セットを使用してエンコードされます。その他すべてのタイプのフィールドは、指定された CCSID の混合バイト文字セットを使用してエンコードされます。注: EXPORT ユーティリティーによって作成された DEL ファイルは単一の文字セットを使用してエンコードされるため、ENCODING を DBCS_GRAPHIC に設定することはできません。
- ESCAPECHAR または ESCAPE_CHARACTER
- エスケープ文字として認識される文字。 エスケープ文字は、それに続く文字 (それ以外の場合はフィールド区切り文字または行の終わりシーケンス文字として扱われる) が、代わりにフィールド内の値の一部として扱われることを示します。 GRAPHIC ストリング・データの場合、エスケープ文字は無視されます。 デフォルトはありません。
- FILLRECORD
- ロード操作の場合、レコードのフィールドは、左から右にターゲット表の列にロードされます。 このオプションは、入力レコードに含まれているフィールドの数を、ターゲット表に定義されている列の数より少なくすることができるかどうかを示します。
- TRUE または ON
- 値が欠落しているすべての列が NULL 可能である場合、入力行には少ない数のフィールドを含めることができます。 欠落している値は NULL に設定されます。 値が欠落している 1 つ以上の列が NULL 可能でない場合、レコードはリジェクトされます。
- FALSE または OFF
- 含まれている列の数が少ない入力行はリジェクトされます。 これがデフォルトです。
- FORMAT または FILE_FORMAT
- ソース・ファイルのデータ・フォーマット:
- テキスト
- ロードまたはアンロードされるデータはテキスト区切り形式です。 これがデフォルトです。
- INTERNAL
- データは Netezza Platform Software (NPS) で使用される内部フォーマットです。 この値は、ファイルからデータベースにデータをロードする際に限り有効です。データをファイルにアンロードする際には無効です。 FORMAT オプションでこの値を指定する場合は、以下のオプションも指定しなければならず、その他のオプションは指定できません。
- DATAOBJECT または FILE_NAME。
- REMOTESOURCE、SWIFT、または S3。 REMOTESOURCE オプションを指定する場合は、値は LOCAL または YES でなければなりません。
- COMPRESS。 これは GZIP に設定する必要があります。
- BINARY
- データは Db2 で使用される内部フォーマットです。
- FIXED
- データは固定長形式です。
- IGNOREZERO または TRIM_NULLS
- CHAR フィールドと VARCHAR フィールド内のバイナリー値ゼロを廃棄するかどうかを指定します。
- TRUE または ON
- バイト値ゼロは無視されます。
- FALSE または OFF
- バイト値ゼロは無視されません。 これがデフォルトです。
- KEEP
- バイナリー値ゼロは受け入れられ、入力フィールドの一部として使用できます。
- INCLUDEHEADER または COLUMN_NAMES
- アンロード操作の場合に、表の列名が外部表ファイルのヘッダーとして組み込まれるかどうか。
- TRUE または ON
- 表の列名がヘッダーとして組み込まれます。
- FALSE または OFF
- 表の列名はヘッダーとして組み込まれません。 これがデフォルトです。
- INCLUDEZEROSECONDS
- アンロード操作の場合に、秒の値が使用不可の場合に秒の値として 00 を指定するかどうか。
- TRUE または ON
- 秒を示す値として 00 を指定します。
- FALSE または OFF
- 秒の値は指定しないでください。 これがデフォルトです。
- ロード操作の場合に、隠し列の値がデータ・ファイル内に存在するかどうかを指定します。
- LFINSTRING
- ストリング・データ内のエスケープされていない改行 (LF または改行と呼ばれることもある) 文字を解釈する方法を指定します。
- TRUE または ON
- エスケープされていない LF 文字は、レコードの最後のフィールドにある場合にのみレコード区切り文字として解釈されます。それ以外の場合はデータとして扱われます。 レコードの最後のフィールドにある LF 文字をデータとして処理するには、そのフィールドの値を単一引用符または二重引用符で囲みます。
- FALSE または OFF
- エスケープされていない LF 文字は、その位置に関係なく、レコード区切り文字として解釈されます。 これがデフォルトです。
このオプションは、アンロード操作ではサポートされません。
重要: この SQL 互換性の機能強化は、 Db2 バージョン 11.5 モディフィケーションパック 2 以降のバージョンでのみ使用できます。 - LOGDIR または ERROR_LOG
- 以下のファイルの書き込み先ディレクトリー。
- <database>.<schema>.<external-table-name>.<file-name>.<application-handle>.<id>.bad
- 拒否されたレコード (処理できなかったレコード) を含むファイル。
- <database>.<schema>.<external-table-name>.<file-name>.<application-handle>.<id>.log
- ログ・ファイル。
<file-name>
で示されます) は、最大値を超えないように切り捨てられます。パーティションに対する操作を実行中に .log ファイルまたは .bad ファイルが生成される場合、生成されたファイルの名前の末尾に、ピリオドに続いて 3 桁のパーティション番号が付加されます。
- MAXERRORS または MAX_ERRORS
- ロード操作の場合に、システムが処理を停止し、即時にロードをロールバックする、リジェクトされたレコード数のしきい値。 デフォルトは 1 (つまり、1 つのレコードがリジェクトされるとロールバックが行われます) です。
- MULTIPARTSIZEMB
DB2_ENABLE_COS_SDK レジストリー変数を ON に設定すると、 Db2 がオブジェクト/ファイルを複数パーツでクラウド・オブジェクト・ストレージにストリーミングできるようにする組み込みベンダー COS SDK を介して、クラウド・オブジェクト・ストレージとの Db2 リモート・ストレージ 通信が容易になります (「マルチパート・アップロード」とも呼ばれます)。 このパラメーターは、アンロードされるファイルのマルチパート・アップロードのパート・サイズをメガバイト (MB) 単位で指定し、 MULTIPARTSIZEMB dbm config パラメーターで指定された値をオーバーライドします。 このオプションは、バージョン 11.5 モディフィケーションパック 7 以降、 Linux (x86) 環境でのみ使用できます。
- MAXROWS または MAX_ROWS
- 正整数に設定されている場合、このオプションは処理される外部表のレコード (行) の最大数を指定します。 0 (デフォルト) に設定されている場合、制限はなく、すべての行が処理されます。 ロード操作中に、MAXROWS が正の値に設定されている場合、その数の行が処理されると、リジェクトまたはスキップされた行があるかどうかに関係なく、システムはロード操作を終了し、挿入されたレコードをすべてコミットします。
- MERIDIANDELIM
- 区切り文字ありおよび区切り文字なしの 12 時間形式の時刻値の AM トークンまたは PM トークンと秒部分を分離する 1 バイト文字。
- NOLOG
- 外部表の .log ファイルを作成するかどうかを指定します。
- NULLVALUE または NULL_VALUE
- NULL 値を示すために使用される最大 4 バイトの UTF-8 ストリング。 デフォルトは
'NULL'
です。 - PARTITION
- Database Partitioning Feature (DPF) がデータベースに対して有効になっている場合、1 つの外部表を複数のファイルにパーティション化することができます。 外部表を構成する各データ・ファイルの名前には、ピリオドとそれに続く 3 桁の数字 (パーティション番号を示す 000 から 999 までの数字) が接尾部として付加されます。 例えば、dataFile.txt という名前の外部表が 3 つのパーティションに分割されている場合、外部表を構成する各ファイルには、それぞれ dataFile.txt.000、dataFile.txt.001、dataFile.txt.002 という名前が付けられます。 これらのファイルはすべてのメンバーからアクセス可能でなければなりません。パーティション化された外部表では、PARTITION オプションにより、ステートメントが適用されるパーティション (複数可) が指定されます。
- PARTITION ALL
- ステートメントは、外部表を構成するすべてのパーティションに適用されます。 アンロード操作の場合、この値のみ許可されています。
- 区画 (n から n)
- ステートメントは、指定された範囲のすべてのパーティションに適用されます。例: PARTITION (54 TO 62)。
- PARTITION (n、n、...)
- ステートメントは、指定されたパーティション (複数可) にのみ適用されます。例: PARTITION (53) または PARTITION (51,57,58)。 複数のパーティション番号を指定する場合、昇順で指定する必要があり (SQLSTATE=42615 の sqlcode SQL0263N)、重複することはできません (SQLSTATE=42615 の sqlcode SQL0265N)。
パーティション化された外部表に対する操作を実行中に .log ファイルまたは .bad ファイルが生成される場合、生成されたファイルの名前の末尾に、ピリオドに続いて 3 桁のパーティション番号が付加されます。
DPF が使用可能で、PARTITION オプションが指定されていない場合、外部表はコーディネーター・メンバー上の単一パーティション表として扱われます。 外部表ファイル、.log ファイル、.bad ファイルの名前にパーティション番号の接尾部は付けられません。
DPF が使用可能になっていない場合は、PARTITION オプションを指定できますが、指定できるのは値 ALL、(0 から 0)、または (0) (SQL0644N) のみです。 何の影響も及ぼしません。
REMOTESOURCE オプションと PARTITION オプションは相互に排他的です。
- QUOTEDNULL
- ロード操作の場合、単一引用符または二重引用符で囲まれ、NULLVALUE または NULL_VALUE オプションで指定された NULL 値と一致する値 (例えば、 "NULL" や 'NULL') を解釈する方法。
- TRUE または ON
- 値は NULL 値として解釈されます。 これがデフォルトです。
- FALSE または OFF
- 値は文字ストリングとして解釈されます。
- QUOTEDVALUE または STRING_DELIMITER
- データ値を引用符で囲むかどうか。
- SINGLE または YES
- データ値は単一引用符 (') で囲まれます。
- DOUBLE
- データ値は二重引用符 (") で囲まれます。
- いいえ
- データ値は引用符で囲まれません。 これがデフォルトです。
- RECORDDELIM または RECORD_DELIMITER
- 行 (レコード) 区切り文字として解釈されるストリング・リテラル。 デフォルトは
'\n'
です。CRINSTRING が TRUE に設定されている場合、RECORDDELIM に CR ('\r') 文字を含めることはできません。 ただし、唯一の例外として、テキスト形式のみの CRINSTRING で CRLF ('\r\n') 区切り文字を含めることができます。
- REMOTESOURCE
- 外部表ファイルが存在する場所、および外部表がリモート・システムにある場合、ファイル・データを圧縮するかどうか。
- LOCAL
- ファイルはローカル・サーバー (つまり、データベースをホストするシステム) 上にあります。 これがデフォルトです。
- はい
- ファイルはローカル・サーバー以外のシステム上にあります。 例えば、クライアント・システムがデータベースに接続されていて、そのシステムにファイルが存在する場合に、YES と指定します。 ファイル・データは、転送前に圧縮されません。
- GZIP
- YES と同様ですが、ファイル・データは、データが転送される前に GZIP 圧縮アルゴリズムを使用して圧縮され、受信後に圧縮解除される点が異なります。 これにより、大量の圧縮可能データが転送されるときの全体的なパフォーマンスが向上します。
- LZ4
- YES と同様ですが、ファイル・データは、データが転送される前に LZ4 圧縮アルゴリズムを使用して圧縮され、受信後に圧縮解除される点が異なります。 これにより、大量の圧縮可能データが転送されるときの全体的なパフォーマンスが向上します。
REMOTESOURCE、SWIFT、および S3 の各オプションは相互に排他的です。 REMOTESOURCE オプションと PARTITION オプションは相互に排他的です。 REMOTESOURCE オプションの値が GZIP または LZ4の場合、COMPRESS オプションは指定できません。
- REQUIREQUOTES
- 引用符が必須かどうか。
- TRUE または ON
- 引用符は必須です。 QUOTEDVALUE オプションは、YES、SINGLE、または DOUBLE に設定する必要があります。
- FALSE または OFF
- 引用符は必須ではありません。 これがデフォルトです。
- SKIPROWS または SKIP_ROWS
- ロード操作の場合、データのロードを開始する前にスキップする行数。 デフォルトは 0 です。 スキップされた行はスキップされる前に処理されるため、スキップされた行は引き続き処理エラーを引き起こす可能性があります。
- SOCKETBUFSIZE
- ソース・ファイルから読み取られるデータのチャンクのサイズ (バイト単位)。 値の有効範囲は 64 KB から 800 MB です。 この範囲外の値を指定すると、値は最も近い有効な値に設定されます。 デフォルトは 8 MB です。
- STRICTNUMERIC
- ロード操作の場合、DECIMAL フィールドに挿入される値のスケールがフィールドに定義されているスケールを超えたときに、その値を処理する方法。
- TRUE または ON
- 挿入される値を含む行はリジェクトされます。 例えば、以下のいずれかの値が DECIMAL(5,3) フィールドにロードされた場合、その値を含む行はリジェクトされます。
12.666666666 -98.34496862785 0.00089
- FALSE または OFF
- 挿入される値が含まれている行は受け入れられ、フィールドに定義されたスケールを超える小数部の部分は切り捨てられます。 これがデフォルトです。 例えば、上記の例の値は次のように変換されます。
12.666 -98.344 0.000
- SWIFT
- ソース・データ・ファイルが Swift オブジェクト・ストア内にあることを指定します。 REMOTESOURCE、SWIFT、および S3 の各オプションは相互に排他的です。 ファイル名を指定するには、DATAOBJECT オプションを使用します。構文:
ここで、SWIFT (endpoint, authKey1, authKey2, bucket)
- エンドポイント
- SWIFT Web サービスの URL を指定する文字ストリング。 authKey1
- ユーザーの検証に使用される Swift オープン・スタック・アカウントのアクセス ID またはユーザー名を指定する文字ストリング。 authKey2
- ユーザーの検証に使用される Swift オープン・スタック・アカウントのパスワードを指定する文字ストリング。 バケット
- ファイルが入っている Swift オープン・スタック・コンテナー (バケット) の名前。
以下に例を示します。CREATE EXTERNAL TABLE exttab1(a int) using (dataobject 'datafile1.dat' swift('https://dal05.objectstorage.softlayer.net/auth/v1.0/', 'XXXOS123456-2:xxx123456', 'b207c6e974020737d92174esdf6d5be9382aa4c335945a14eaa9172c70f8df16', 'my_dev' ) )
- S3
- ソース・データ・ファイルが S3 互換オブジェクト・ストア内にあることを指定します。 REMOTESOURCE、SWIFT、および S3 の各オプションは相互に排他的です。 ファイル名を指定するには、DATAOBJECT オプションを使用します。構文:ここで、
S3 (endpoint, authKey1, authKey2, bucket)
- エンドポイント
- S3 互換 Web サービスの URL を指定する文字ストリング。 authKey1
- ユーザーおよびすべてのユーザー・アクションの検証に使用されるアクセス・キーの S3 アクセス・キー ID を指定する文字ストリング。 IBM Cloud Object Storageの場合、これは HMAC 資格情報からのアクセス・キー ID です。 authKey2
- ユーザーおよびすべてのユーザー・アクションの検証に使用されるアクセス・キーの S3 秘密鍵を指定する文字ストリング。 IBM Cloud Object Storageの場合、これは HMAC 資格情報からの秘密アクセス・キーです。 バケット
- ファイルが入っている S3 バケットの名前。
注: IBM Cloud Object Storageの場合、HMAC 資格情報を作成するには、新しいサービス資格情報を作成するときに、 「インライン構成パラメーターの追加」 フィールドに{"HMAC:true}
を指定します。AWS S3 の使用例:CREATE EXTERNAL TABLE exttab2(a int) using (dataobject 'datafile2.dat' s3('s3.amazonaws.com', 'XXXOS123456-2:xxx123456', 'bs07c6e974040737d92174e5e96d5be9382aa4c33xxx5a14eaa9172c70f8df16', 'my_dev' ) )
IBM Cloud Object Storage の使用例:CREATE EXTERNAL TABLE exttab2(a int) using (dataobject 'datafile2.dat' s3('s3-api.us-geo.objectstorage.softlayer.net', '1a2bkXXXsaddntLo0xX0', 'XXxxiEPjJ7T7WBUz74E6abcdABCDE8Q7RgU4gYY9', 'my_dev' ) )
- AZURE
- Microsoft Azure Blob Storage に置かれているソース・データ・ファイルを使用するように指定します。 REMOTESOURCE、SWIFT、S3、および AZURE の各オプションは相互に排他的です。 ファイル名を指定するには、DATAOBJECT オプションを使用します。 構文:構文:ここで、
AZURE (endpoint, authKey1, authKey2, bucket)
- エンドポイント
- AZURE Web サービスの URL を指定する文字ストリング。 authKey1
- ユーザーの検証に使用される Azure Blob Storage アカウントのアクセス ID またはユーザー名を指定する文字ストリング。 authKey2
- ユーザーの検証に使用される Azure Blob Storage アカウントのアクセス・キーを指定する文字ストリング。 バケット
- ファイルが入っている Azure Blob Storage コンテナー (バケット) の名前。
以下に例を示します。CREATE EXTERNAL TABLE exttab1(a int) using (dataobject 'datafile1.dat' azure('https://my_account.blob.core.windows.net', 'my_account', 'lW+oHjmZecPS++IKgThAHlMUOaFUA5C6Z2RlFmc9JPpK34RO/ZIOywzILxJnzGPHz6d/yDrcQDAwH5wySbOZMQ==', 'my_bucket' ) )
IBM Cloud Object Storage の使用例:CREATE EXTERNAL TABLE exttab2(a int) using (dataobject 'datafile2.dat' s3('s3-api.us-geo.objectstorage.softlayer.net', '1a2bkXXXsaddntLo0xX0', 'XXxxiEPjJ7T7WBUz74E6abcdABCDE8Q7RgU4gYY9', 'my_dev' ) )
- TIMEDELIM
- 時間コンポーネント (時間、分、および秒) を区切る 1 バイト文字。 デフォルトは
':'
です。 TIMEDELIM が空ストリングに設定されている場合、時間、分、および秒はすべて 2 桁の数字として指定する必要があります。 TIMESTAMP_FORMAT オプションと TIMEDELIM オプションは相互に排他的です。 - TIMEROUNDNANOS または TIMEEXTRAZEROS
- 注: このオプションは TIMESTAMP 列にのみ適用されます。
- TIMESTYLE
- データ・ファイルで使用される時刻形式。
- 24HOUR
- 24 時間形式。例えば、23: 55。 これがデフォルトです。
- 12HOUR
- 12 時間形式。例えば、11:55 PM。 AM または PM トークンは、その直前にシングル・スペースを入れることができ、大/小文字の区別はありません。
- TIMESTAMP_FORMAT
- データ・ファイルのタイム・スタンプ・フィールドの形式。 値は、 TIMESTAMP_FORMAT スカラー関数で受け入れられる任意のフォーマット・ストリングにすることができます。 デフォルト値は 'YYYY-MM-DD HH.MI.SS' です。 TIMESTAMP_FORMAT オプションと TIMEDELIM、DATEDELIM、TIMESTYLE、または DATESTYLE オプションは相互に排他的です。
- TIME_FORMAT
- データ・ファイルの時刻フィールドの形式。 値は、 TIMESTAMP_FORMAT スカラー関数で受け入れられる任意の時刻形式ストリングにすることができます。 デフォルトは HH.MI.SS です。 TIME_FORMAT オプションと TIMEDELIM オプションまたは TIMESTYLE オプションは相互に排他的です。
- TRIMBLANKS
- 外部表でストリング内の先行ブランクまたは末尾ブランク (つまり、先行または末尾のスペース文字) を扱う方法。
- LEADING
- すべての先行ブランク (つまり、最初の非ブランク文字の前にあるブランク) は除去されます。
- TRAILING
- すべての末尾ブランク (つまり、最後の非ブランク文字の後にあるブランク) は除去されます。
- BOTH
- 先行ブランクおよび末尾ブランクはすべて削除されます。
- NONE
- ブランクは除去されません。 これがデフォルトです。
- TRUNCSTRING または TRUNCATE_STRING
- 宣言されたストレージ・サイズを超える CHAR または VARCHAR ストリングのシステムでの処理方法。
- はい
- 宣言されたストレージ・サイズを超えるストリング値は切り捨てられます。
- いいえ
- 宣言されたストレージ・サイズをストリング値が超えるとエラーが返されます。 これがデフォルトです。
- Y2BASE
- 100 年の範囲の始まりとなる年。 2 桁で指定された年はこの年からカウントされます。 デフォルトは 2000 です。 DATESTYLE が Y2MD、MDY2、DMY2、MONDY2、または DMONY2 に設定されている場合は、このオプションを必ず指定する必要があります。
表 3. Options オプション デフォルト ロード操作に適用 アンロード操作に適用 Azure (デフォルトなし) Y Y BOOLSTYLE または BOOLEAN_STYLE 1_0 Y Y CARDINALITY (デフォルトなし) Y Y CCSID (デフォルトなし) Y Y COMPRESS いいえ Y Y CRINSTRING いいえ Y Y CTRLCHARS いいえ Y N DATAOBJECT または FILE_NAME (デフォルトなし) Y Y DATEDELIM '-' Y Y DATETIMEDELIM スペース (' ') Y Y DATESTYLE YMD Y Y DATE_FORMAT YYYY-MM-DD Y Y DECIMALDELIM または DECIMAL_CHARACTER '.' Y Y DELIMITER '|' Y Y ENCODING INTERNAL Y Y1 (Y) ESCAPECHAR または ESCAPE_CHARACTER (デフォルトなし) Y Y FILLRECORD いいえ Y N FORMAT または FILE_FORMAT テキスト Y Y IGNOREZERO または TRIM_NULLS いいえ Y N INCLUDEHEADER または COLUMN_NAMES いいえ N Y INCLUDEZEROSECONDS いいえ Y Y INCLUDEHIDDEN いいえ Y N LFINSTRING いいえ Y N LOGDIR または ERROR_LOG 外部表ファイルのターゲット・ディレクトリー Y N MULTIPARTSIZEMB MULTIPARTSIZEMB dbm config パラメーターによって指定された値。 Y N MAXERRORS または MAX_ERRORS 1 Y N MAXROWS または MAX_ROWS 0 Y N MERIDIANDELIM スペース (' ') Y Y NOLOG いいえ Y Y NULLVALUE または NULL_VALUE 'NULL' Y Y PARTITION (デフォルトなし) Y Y QUOTEDNULL はい Y N QUOTEDVALUE いいえ Y N RECORDDELIM または RECORD_DELIMITER '¥ n' Y N REMOTESOURCE LOCAL Y Y REQUIREQUOTES いいえ Y N SKIPROWS または SKIP_ROWS 0 Y N SOCKETBUFSIZE 8 MB Y Y STRICTNUMERIC いいえ Y N SWIFT (デフォルトなし) Y Y S3 (デフォルトなし) Y Y TIMEDELIM ':' Y Y TIMEROUNDNANOS または TIMEEXTRAZEROS いいえ Y N TIMESTAMP_FORMAT 'YYYY-MM-DD HH.MI.SS' Y Y TIMESTYLE 24HOUR Y Y TIME_FORMAT HH.MI.SS Y Y TRIMBLANKS NONE Y Y TRUNCSTRING または TRUNCATE_STRING いいえ Y N Y2BASE 2000 Y N 1 値 INTERNAL、UTF8、および LATIN9 の場合のみ。 - AS SELECT ステートメント
- fullselect から得られる結果表の列ごとに、表の対応する列を定義し、その列に照会結果を取り込むことを指定します。 定義する各列には、結果表の対応列から以下の属性が取り込まれます (各データ・タイプに該当する場合)。
- 列名
- 列の説明
- データ・タイプ、長さ、精度、および位取り
- NULL 可能
注
- 処理できないレコード (ある場合) は、次の形式の名前を持つファイルに書き込まれます。
エラーは、次の形式の名前を持つファイルに記録されます。<database>.<schema>.<external-table-name>.<file-name>.<application-handle>.<id>.bad
これらのファイルは、LOGDIR または ERROR_LOG オプションによって指定されたディレクトリーにあります。<database>.<schema>.<external-table-name>.<file-name>.<application-handle>.<id>.log
パーティションに対する操作の場合、生成された .bad ファイルまたは .log ファイルの名前の末尾に、ピリオドに続いて 3 桁のパーティション番号が付加されます。
- 指定された外部表を作成、挿入、または削除するには、CREATE、INSERT、または DROP ステートメントを発行します。 一時外部表に挿入したり、一時外部表をドロップしたりすることはできません。
- 外部表をドロップすると、表定義は削除されますが、表に関連付けられているデータ・ファイルは削除されません。
制約事項
- リモート外部表の制約事項:
- ルーチン内では許可されません
- LOAD CURSOR の使用時には許可されません。
- リモート外部表 (すなわち、Swift および S3 オブジェクト・ストアに存在しておらず、REMOTESOURCE オプションが LOCAL 以外の値に設定されている外部表) の場合:注: 単一の照会または副照会は、一度に複数の外部表から選択することはできません。また、同じ外部表を複数回参照することもできません。 必要に応じて、複数の外部表のデータを 1 つの表に結合し、照会でその表を使用します。
さらに、1 つの和集合演算に複数の外部表を含めることはできません。
- 外部表は、オペレーティング・システム内で定義されたユーザー ID でのみ照会できます。
- 外部表は、Windows システムで実行されている Db2 インスタンスでは使用できません。
- ロードされるデータは正しくフォーマットされている必要があります。
- 外部表の削除、切り捨て、および更新はできません。
代替構文
- SAMEAS を LIKE の代わりに使用できます。
- REMOTESOURCE オプションでは、ODBC、JDBC、または OLE-DB を YES の代わりに指定できます。
- FORMAT オプションを INTERNAL に設定する場合は、COMPRESS オプションに GZIP の代わりに YES の値を指定できます。
例
- 外部表にデータをアンロードします。
CREATE EXTERNAL TABLE 'order.tbl' USING (DELIMITER '|') AS SELECT * from orders;
CREATE EXTERNAL TABLE 'export.csv' USING (DELIMITER ',') AS SELECT foo.x, bar.y, bar.dt FROM foo, bar WHERE foo.x = bar.x;
- 外部表からデータをロードします。
INSERT INTO target SELECT * FROM EXTERNAL 'data.txt' USING (DELIMITER '|');
INSERT INTO orders SELECT * FROM EXTERNAL 'order.tbl'( order_num INT, order_dt TIMESTAMP) USING (DELIMITER '|');
- 外部表からデータを選択します。
SELECT * FROM EXTERNAL 'order.tbl' (order_num INT, order_dt TIMESTAMP) USING (DELIMITER '|');
SELECT * FROM EXTERNAL 'test.txt' LIKE test_table USING (DELIMITER ',');
SELECT x, y AS dt FROM EXTERNAL 'test.txt' ( x integer, y decimal(18,4) ) USING (DELIMITER ',');