より柔軟な方法で 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 ファイルをパーマネントテーブルにロードする例を以下に示します。
- CREATE TABLE visitor_summary (
- dayoftheweek CHAR(9) NOT NULL,
- record_date CHAR(30) NOT NULL,
- page_loads INT NOT NULL,
- unique_visitors INT NOT NULL,
- first_time_visitors INT NOT NULL,
- returning_visitors INT NOT NULL );
- 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
にとって同様のやり方である CHAR
、NCHAR
、BINARY
、LONG VARCHAR
、LONG NVARCHAR
、 LONG BINARY
型のいずれの拡張からもテーブルへのデータロードが可能です。
そのため、上記の LOAD TABLE
文は、以下のように書くことが可能です。
続きはこちら:より柔軟な方法で SAP SQL Anywhere へデータをロードする – パート 2
SAPのSAP SQL Anywhere製品ページはこちら