- 認可識別子
- 定義する外部表の所有者になるユーザの認可識別子を指定します。
- 省略した場合は,CREATE FOREIGN TABLEを実行するユーザの認可識別子が仮定されます。
- 表識別子
- 定義する外部表の名称を指定します。
- 一つの認可識別子に対して,同じ表識別子は複数指定できません。
- 列名 データ型〔列一般オプション〕〔,列名 データ型〔列一般オプション〕〕…
- 列名
- 表を構成する列の名称を指定します。
- 列の名称には,対応する外部サーバの表に定義した列名と同じものを指定します。同一の列名は複数指定できません。
- データ型
- 列のデータ型を指定します。
- 指定できるデータ型は,HiRDBの既定義型です。外部サーバの表の列のデータ型と互換性のある既定義型を指定してください。互換性のないデータ型を指定した場合は,エラーとなることがあります。データ型の互換性については,「付録C 外部表を利用する場合のデータ型の対応関係」を参照してください。
- 次のデータ型は指定できません。
- 定義長が256バイト以上のCHAR,VARCHAR,MCHAR,及びMVARCHAR
- 文字集合を指定したCHAR,VARCHAR
- 定義長が128文字以上のNCHAR及びNVARCHAR
- BLOB
- 定義長が256バイト以上のBINARY
- 列一般オプション::=OPTIONS (オプション名 'オプション値' 〔,オプション名 'オプション値'〕…)
列に対するオプションを指定します。
次のオプション名及びオプション値を指定できます。同一名称のオプションは二つ以上指定できません。
- COLLATING_SEQUENCE {'SAME'|'DIFFERENT'}
- 該当する列が文字列型の場合,外部サーバの該当する列の文字コード及び照合順序がHiRDBと等しいかどうかを指定します。
- 省略した場合はSAMEが仮定されます。
- このオプションは,文字列型(CHAR,VARCHAR,NCHAR,NVARCHAR,MCHAR,及びMVARCHAR)の列に対してだけ指定できます。
- SAME
- 文字コード及び照合順序が等しい場合に指定します。
- DIFFERENT
- 文字コード又は照合順序のどちらかが異なる場合,又はどちらも異なる場合に指定します。
- DIFFERENTを指定した場合,HiRDBは文字列型に対する大小比較(<,<=,>,>=),BETWEEN述語,集合関数(MIN,MAX),及びORDER BYの処理をします。外部のDBとHiRDBとで文字コードセット,又は照合順序が異なる場合にSAMEを指定すると,該当する列に対する文字列の大小比較(<,<=,>,>=),BETWEEN述語,集合関数(MIN,MAX),及びORDER BYの結果が異なることがあります。
- TRAILING_SPACE {'YES'|'NO'}
- 可変長文字列型(VARCHAR,NVARCHAR,及びMVARCHAR)の列の場合,該当する列に格納する文字列の後ろに,半角空白文字列又は全角空白文字列があるかどうかを指定します。
- 省略した場合はNOが仮定されます。
- このオプションは,可変長文字列型(VARCHAR,NVARCHAR,及びMVARCHAR)の列に対してだけ指定できます。
- 外部のDBに格納されているデータと異なるオプション値を指定した場合,文字列比較の結果が異なることがあります。
- YES
- 該当する列に格納する文字列の後ろに,半角空白文字列又は全角空白文字列がある場合,又はその可能性がある場合に指定します。
- YESを指定して,Hub最適化情報定義のpd_hub_opt_trailing_spcオペランドに2を指定している場合,文字列の比較(=,!=,<>,<,<=,>,>=),限定述語,BETWEEN述語,IN述語,集合関数(MIN,MAX),SELECT DISTINCT指定,DISTINCT集合関数,UNION ALLを除く集合演算,GROUP BY,及びORDER BYのうち,仕様の差異がある部分の処理をHiRDBがします。ただし,同時にCOLLATING_SEQUENCEオプションにDIFFERENTを指定する場合は,文字列の比較(=,!=,<>,<,<=,>,>=),BETWEEN述語,集合関数(MIN,MAX),及びORDER BYの処理は,常にHiRDBでします。Hub最適化情報定義については,マニュアル「HiRDB Version 8 システム定義」を参照してください。
- NO
- 該当する列に格納する文字列の後ろに,半角空白文字列又は全角空白文字列がない場合に指定します。
- NULLABLE {'YES'|'NO'}
- 列にナル値を許すかどうかを指定します。
- 省略した場合はYESが仮定されます。
- 外部のDBの列と異なる指定をした場合,HiRDBの性能が悪くなったり,処理結果が不正になったりすることがあります。外部表へのアクセスに関する性能設計については,マニュアル「HiRDB External Data Access Version 8」を参照してください。
- YES
- ナル値を許す場合に指定します。
- Hub最適化情報定義のpd_hub_opt_nullableオペランドに2を指定し,かつ文字列型の列にYESを指定した場合,該当する列を含む連結演算(||)はHiRDBが処理します。
- NO
- ナル値を許さない場合(非ナル値制約の場合)に指定します。NOを指定した場合,その列にはNOT NULL WITH DEFAULTが仮定されます。
外部表がある外部サーバの名称(CREATE SERVERで定義した名称)を指定します。
- OPTIONS (オプション名 'オプション値' 〔,オプション名 'オプション値'〕…)
外部表に対する次のオプションを指定します。なお,一つのオプションは重複して指定できません。
スキーマ名,及び外部サーバ上の表識別子は,それぞれ最大30バイトで指定できます。
- SCHEMA 'スキーマ名'
- 外部表からアクセスする表のスキーマ名を指定します。
- 外部サーバがHiRDBの場合,スキーマ名は認可識別子に相当します。
- スキーマ名を省略した場合,認可識別子で指定した名称が仮定されます。スキーマ名及び認可識別子を省略した場合は,CREATE FOREIGN TABLEを実行するユーザの認可識別子が仮定されます。
- 外部表からアクセスする表が外部サーバでパブリックビューとして定義されている場合は,スキーマ名にPUBLICを指定してください。
- TABLE '外部サーバ上の表識別子'
- 外部表からアクセスする表の,外部サーバ上で定義された名称を指定します。
- 省略した場合,表識別子で指定した名称が仮定されます。