Excel では、それぞれの Excel ブックはいくつかのテーブルを持つデータベースであると、論理的に考えられます。テーブルはブック内のシートにマッピングされます。ODBC ドライバマネージャで ODBC データソース名を設定する場合は、そのデータソースに関連付けられたデフォルトのブック名を指定します。ただし、CREATE TABLE 文を実行する場合には、デフォルトを無効にしてロケーションの文字列にブック名を指定できます。これによって、1 つの ODBC DSN を使用してすべての Excel ブックにアクセスできます。
Microsoft Excel ODBC ドライバに接続する excel という名前のリモートサーバを作成します。
CREATE SERVER excel CLASS 'ODBC' USING 'DRIVER=Microsoft Excel Driver (*.xls);DBQ=d:\\work1.xls;READONLY=0;DriverID=790' |
mywork というシート (テーブル) を持つ work1.xls というブックを作成するには、次のようにします。
CREATE TABLE mywork (a int, b char(20)) AT 'excel;d:\\work1.xls;;mywork'; |
2 番目のシート (テーブル) を作成するには、次のような文を実行します。
CREATE TABLE mywork2 (x float, y int) AT 'excel;d:\\work1.xls;;mywork2'; |
CREATE EXISTING 文を使用して、既存のシートを SQL Anywhere にインポートできます。ここでは、シートの最初のローには、カラム名が入ることを前提としています。
CREATE EXISTING TABLE mywork AT'excel;d:\\work1;;mywork'; |
SQL Anywhere によって、テーブルが見つからないと表示された場合は、マッピングするカラムとローの範囲を明示的に指定する必要があります。次に例を示します。
CREATE EXISTING TABLE mywork AT 'excel;d:\\work1;;mywork$'; |
シート名に $ を追加すると、ワークシート全体が選択されることを示します。
AT で指定するロケーションの文字列で、フィールドセパレータとしてピリオドの代わりにセミコロンが使用されていることに注意してください。これは、ファイル名にピリオドが使用されるためです。Excel では所有者名フィールドをサポートしないので、これはブランクのままにしてください。
削除はサポートされていません。また、Excel ドライバは位置付け更新をサポートしないため、更新も可能でない場合があります。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |