Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ SQL の使用法 » データのインポートとエクスポート » データインポート

 

異なるテーブル構造のマージ

INSERT 文の一種とグローバルテンポラリテーブルを使用して、インポートデータをテーブルに合うように並べ替えます。

前提条件

グローバルテンポラリテーブルを作成するには、次のいずれかのシステム権限を持っている必要があります。

  • CREATE TABLE
  • CREATE ANY TABLE
  • CREATE ANY OBJECT

データのインポート (ロード) に必要な権限は、-gl データベースオプションの設定値とデータのインポート元によって異なります。データのロードに必要な権限についての詳細は、LOAD TABLE 文の項を参照してください。

INSERT 文を使用するには、テーブルの所有者であるか、次のいずれかの権限を持っている必要があります。

  • INSERT ANY TABLE システム権限
  • そのテーブルに対する INSERT 権限

さらに、ON EXISTING UPDATE 句が指定されている場合は、UPDATE ANY TABLE システム権限を持っているか、テーブルに対する UPDATE 権限を持っている必要があります。

 ♦ タスク
  1. [SQL 文] ウィンドウ枠で、入力ファイルと構造が一致するグローバルテンポラリテーブルを作成します。

    CREATE TABLE 文を使用して、グローバルテンポラリテーブルを作成できます。

  2. LOAD TABLE 文を使用して、作成したグローバルテンポラリテーブルにデータをロードします。

    データベース接続を閉じると、グローバルテンポラリテーブル内のデータは消去されます。ただし、テーブル定義は残ります。この定義は、次にデータベースに接続するときに使用できます。

  3. INSERT 文と SELECT 句を使用し、テンポラリテーブルからデータを抽出して要約し、データベースの 1 つまたは複数の永久テーブルにコピーします。

結果

データが、永久データベーステーブルにロードされます。

次は前述した手順の例です。



CREATE GLOBAL TEMPORARY TABLE TempProducts
(
    ID                    integer NOT NULL,
    Name                  char(15) NOT NULL,
    Description           char(30) NOT NULL,
    Size                  char(18) NOT NULL,
    Color                 char(18) NOT NULL,
    Quantity              integer NOT NULL,
    UnitPrice             numeric(15,2) NOT NULL,
    CONSTRAINT ProductsKey PRIMARY KEY (ID)
)
ON COMMIT PRESERVE ROWS;

LOAD TABLE TempProducts
FROM 'C:\\ServerTemp\\newProducts.csv'
SKIP 1;

INSERT INTO Products WITH AUTO NAME 
    (SELECT Name, Description, ID, Size, Color, Quantity, 
            UnitPrice * 1.25 AS UnitPrice 
    FROM TempProducts);

グローバルテンポラリテーブル内の品目の価格は、ローを Products テーブルに挿入する前に 25% 増しに調整されます。

 参照