より柔軟な方法で SAP SQL Anywhere へデータをロードする – パート 2

 

この記事のオリジナルは、Glenn Paulley が sybase.com に 2009 年 7 月に掲載したものです。その中で、Glenn は データがクライアントにある場合に、LOAD TABLE を使用して SQL Anywhere にデータをロードする方法について語っています。

 

 

このトピックに関する私の以前のブログ記事では、READ_CLIENT_FILE()機能を使用した SQL Anywhere の CSV ファイルのクエリー内からの直接の参照機能について説明しました。

今回のブログ記事では、Version 11 以降でサポートされている LOAD TABLE 文の同様の拡張機能について説明したいと思います。

 

 

LOAD TABLE でクライアントに存在するファイルをロードする

 

SQL Anywhere サーバーにおける、データを retrieve するための READ_CLIENT_FILE()を使用したクライアントへのコールバック機能は、LOAD TABLEでも使用可能です。 以前の SQL Anywhere のバージョンでは、LOAD TABLE は、サーバーマシンから直接アクセス可能なファイルへのアクセスのみ可能でした。現在のバージョンでは、適切な権限 (READCLIENTFILE authority) があり、有効化 (the ALLOW_READ_CLIENT_FILE database option) されていれば、クライアントマシンからファイルを直接サーバーのデータベースやテンポラリーテーブルへロードすることが可能です。

 

StatCounter アカウントから生成した CSV ファイルの処理について説明したパート 1 に続いて、LOAD TABLE を使用して、CSV ファイルをパーマネントテーブルにロードする例を以下に示します。

 

  1. CREATE TABLE visitor_summary (
  2.     dayoftheweek    CHAR(9) NOT NULL,
  3.     record_date    CHAR(30) NOT NULL,
  4.     page_loads      INT NOT NULL,
  5.     unique_visitors INT NOT NULL,
  6.     first_time_visitors INT NOT NULL,
  7.     returning_visitors INT NOT NULL );
  8. LOAD TABLE visitor_summary USING CLIENT FILE ‘c:\gpaulley\blog\Summary-6July2009.csv’ DELIMITED BY ‘,’ SKIP 1

 

USING CLIENT FILE は、サーバー上のファイルのコンテンツをマテリアライズしません。なぜならば、クライアントファイルは 任意のサイズである可能性があるからです。

 

Version 11では、LOAD TABLE はファイルをロードする以上のことをサポートしています。LOAD TABLE のシンンタックスには、USING VALUE 句が含まれ、OPENSTRING にとって同様のやり方である CHARNCHARBINARYLONG VARCHARLONG NVARCHAR LONG BINARY 型のいずれの拡張からもテーブルへのデータロードが可能です。

 

そのため、上記の LOAD TABLE 文は、以下のように書くことが可能です。

 

 

続きはこちら:より柔軟な方法で SAP SQL Anywhere へデータをロードする – パート 2

 

SAPのSAP SQL Anywhere製品ページはこちら