ソース・データの構造は、インポート先テーブル自体の構造と一致する必要はありません。たとえば、カラムのデータ型が異なる、順序が異なる、またはロード先のテーブルのカラム数を超えるインポート・データの値があるなどです。
インポートするデータの構造がインポート先テーブルの構造と一致しないことがわかっている場合は、次の操作を行うことができます。
LOAD TABLE 文でロードするカラムの名前リストを入力します。
INSERT 文の一種とグローバル・テンポラリ・テーブルを使用して、インポート・データをテーブルに合うように並べ替えることができます。
INPUT 文を使用して、カラムの特定のセットまたは順序を指定できます。
インポート中のファイルにテーブルのカラムのサブセットへのデータがある場合、またはカラムの順序が異なる場合は、LOAD TABLE 文の DEFAULTS オプションを使用して、ブランクを埋めて一致しないテーブル構造をマージすることもできます。
DEFAULTS オプションが OFF の場合は、カラム・リストにないカラムすべてに NULL が割り当てられます。DEFAULTS オプションが OFF で、NULL 入力不可のカラムがカラム・リストから省かれている場合は、データベース・サーバは、空の文字列をカラムの型に変換しようとします。
DEFAULTS オプションが ON で、カラムにデフォルト値が入っている場合は、その値が使用されます。
たとえば、Customers テーブルの City カラムにデフォルト値を定義してから、次のような LOAD TABLE 文を使用して new_customers.txt という架空のファイルから新しいローを Customers テーブルにロードできます。
ALTER TABLE Customers ALTER City DEFAULT 'Waterloo'; LOAD TABLE Customers ( Surname, GivenName, Street, State, Phone ) FROM 'new_customers.txt' DEFAULTS ON; |
City カラムには値が入力されていないため、デフォルト値が入力されます。DEFAULTS OFF
が指定されている場合は、City カラムには空の文字列が割り当てられます。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |