基本ビューの作成

基本ビューは CREATE TABLE ステートメントを使用して作成できます。基本ビューは Virtual DataPort にデータを提供する外部ソース (Web、リレーショナルデータベースなど) を表します。

注釈

VQL ステートメントを手作業で記述するのではなく、管理ツールを使用してグラフィカルな方法で基本ビューを作成することを強くお勧めします。

基本ビューはそれぞれ属性グループで構成されており、各属性は データ型 を持っています。

基本ビューを作成するときは、基本ビューの名前、ロケール構成、スキーマを指定します。

CREATE TABLE ステートメントの構文
CREATE [ OR REPLACE ] TABLE <name:identifier> I18N <name:identifier>
    ( <field> [, <field> ]* )
    [ FOLDER = <literal> ]
    [ DESCRIPTION = <literal> ]
    [ <primary_key> ]
    [ CACHE {
          OFF
        | PARTIAL [ EXACT ] [ PRELOAD ]
        | FULL
        | INVALIDATE [ ON CASCADE ]
          [ NOATOMIC [ INVALIDATEBLOCKSIZE <integer> ] ]
          [ WHERE <condition> ] } ]
    [ BATCHSIZEINCACHE { <integer> | DEFAULT } ]
    [ TIMETOLIVEINCACHE { <seconds:integer> | DEFAULT | NOEXPIRE } ]
    [ SWAP { ON | OFF | DEFAULT } ]
    [ SWAPSIZE <megabytes:integer> ]
    [ MAXRESULTSIZE <megabytes:integer> ]
    [ <table search method clause> ]*
    [ <table index clause> ]*
    [ DELEGATESTATSQUERY = <boolean> ]
    [ {
          SMART_ONLY
        | SMART_THEN_ATSOURCE_THROUGH_VDP
        | ATSOURCE_THROUGH_VDP_ONLY
    } ]

<field> ::=
    <name:identifier>:<type:identifier> [ ( <property list> ) ]

<primary_key> ::=
  [ CONSTRAINT <name:literal> ]
  PRIMARY KEY ( <field_name:literal>
  [, <field_name:literal>]* )

<property list> ::=
  <name:identifier> [ = <value:identifier>]
  [, <name_i:identifier> [ = <value_i:identifier>] ]*

<table index clause> ::=
    DECLARE { CACHE | VIEW } [ CLUSTER | HASH | OTHER ] INDEX <name:identifier> ON ( <table index field [ ,<table index field> ]* )
  | DELETE { CACHE | VIEW } INDEX <name:identifier>

<table index field> :: = <field name:identifier> [ ASC | DESC ]

<table search method clause> ::=
      ADD SEARCHMETHOD <name:identifier> (
        [ I18N <name:identifier> ]
        [ CONSTRAINTS ( [ <constraint clause> ]+ ) ]
        [ OUTPUTLIST ( <output clause> ) ]
        [ WRAPPER ( <wrapper type> <wrapper_name:identifier> )
          ALTERNATIVE_WRAPPERS ( JDBC <wrapper_name:identifier>
                                 [, JDBC <wrapper_name:identifier> ]* ) ]
       )

OR REPLACE 修飾子で、指定した名前の基本ビューが存在する場合に新しいビューと置き換えるよう指示できます。既存のビューを置き換える場合、派生ビューのクエリ機能が変更されることがあります (たとえば、これまで存在していなかった別のフィールドやクエリ制限を追加した場合)。そのため、この基本ビューから派生したビューに影響が及ぶことがあります。

フィールドの blob であれば、フィールドのコンテンツタイプを定数 (たとえば、 application/pdf) または式で指定できます。詳細については、管理ガイドの「 基本ビューの Blob フィールドの扱い 」を参照してください。

ビューの検索メソッドは ADD SEARCHMETHOD 句で定義します。検索メソッドについては、「 クエリ機能: 検索メソッドとラッパー 」を参照してください。

PRIMARY KEY 句ではビューのプライマリキーを定義します。プライマリキーの詳細については、管理ガイドの「 ビューのプライマリキー 」を参照してください。

ALTERNATIVE_WRAPPERS 句では基本ビューの代替ラッパーを定義します。管理ガイドの「 代替ソース 」で、その詳細を説明しています。

次の図は、 CREATE TABLE ステートメントを使用した基本ビューの作成方法の例を示しています。このコードでは、JDBC ラッパーと、3 つのテキスト型フィールド (isbntitleauthor) を持つ基本ビュー book を作成しています。

基本ビューの作成例
CREATE WRAPPER JDBC book
    DATASOURCENAME=ds_jdbc_mysql
    CATALOGNAME = 'public'
    RELATIONNAME = 'book'
    OUTPUTSCHEMA (
        isbn = 'isbn' :'java.lang.String' (OPT) SORTABLE,
        title = 'title' :'java.lang.String' (OPT)  ESCAPE SORTABLE,
        author = 'author' :'java.lang.String' (OPT) SORTABLE
    );

CREATE TABLE book I18N us_est (
        isbn:text,
        title:text,
        author:text ( DESCRIPTION = 'Author of the book. If there is more than one, the authors are separated by a comma')
    )
    PRIMARY KEY ( 'isbn' )
    CACHE OFF
    TIMETOLIVEINCACHE DEFAULT
    ADD SEARCHMETHOD book(
        I18N us_est
        CONSTRAINTS (
             ADD isbn (any) OPT ANY
             ADD title (any) OPT ANY
             ADD author (any) OPT ANY
        )
        OUTPUTLIST (isbn, title, author)
        WRAPPER (jdbc book)
    );