機能
カラムナデータベース上にビューを作成します。
書式
pgxa_create_view(viewname)
引数
引数 | データ型 | 意味 |
---|---|---|
viewname | text | ビュー名 |
戻り値
戻り値 | 意味 |
---|---|
TRUE | 正常終了 |
FALSE | 異常終了 |
実行例
> psql postgres psql (x.y.z) Type "help" for help. postgres=# select pgxa_create_view('scm.view1'); pgxa_create_view ------------------ t (1 row)
x.y.z : PostgreSQLのバージョンが表示されます。
説明
ビュー名は、事前に定義したビュー名を指定してください。
未定義のビュー名を指定した場合はエラーとなります。
ビューが参照する表は別名(alias)を必ず指定してください。
例:ビューが参照する表の別名を"t"とした場合
postgres=# create view view1 as select col1, col2 from tbl1 t; CREATE VIEW
ビュー定義文にCAST関数を指定している場合はエラーとなります。
ビュー定義文に'::'を使用したCASTを指定している場合はエラーとなります。
ビュー定義文でlike演算子を指定している場合はエラーとなります。
ビュー定義文でinterval演算子を指定している場合はエラーとなります。
ビュー定義文でIN句に対して2つ以上の要素を指定している場合はエラーとなります。
ビュー定義文では、以下の関数が利用可能です。
abs | acos | ascii | asin | atan |
atan2 | avg | bit_length | ceil | ceiling |
char_length | coalesce | corr | cos | cot |
count | covar_pop | covar_samp | cume_dist | current_timestamp |
degrees | dense_rank | exp | first_value | floor |
lag | last_value | lead | left (注1) | length |
ln | lower | ltrim (注2) | max | min |
mod | now | ntile | nullif | octet_length |
percent_rank | pi | power | radians | rank |
regr_avgx | regr_avgy | regr_count | regr_intercept | regr_r2 |
regr_slope | regr_sxx | regr_sxy | regr_syy | repeat |
replace | reverse | right (注1) | round (注3) | row_number |
rtrim (注2) | sign | sin | sqrt | stddev |
stddev_pop | stddev_samp | sum | tan | upper |
var_pop | var_samp | variance | width_bucket |
注1) 'left'関数/'right'関数の第二引数に負の数は指定できません。
注2)‘ltrim’関数/’rtrim’関数の第二引数は指定できません。(デフォルトのスペースでのみ動作)
注3)‘round’関数の第二引数の指定は必須です。
本関数の実行前に、COMMENT文で、ビューのコメントとしてカラムナテーブルでのビュー名を指定してください。
例:カラムナテーブルのビュー名を"postgres_public_view1"とした場合
postgres=# comment on view view1 is 'postgres_public_view1'; COMMENT
ビューが参照するテーブルに外部テーブル以外が含まれている場合はエラーとなります。
カラムナテーブルを参照する外部テーブルが未作成の場合はエラーとなります。
暗号化したカラムには、pgxa_get_decryptdataシステム関数による復号を指定してビューを作成してください。
例:暗号化されたカラムcol2を含むtable1のビューview1を作成する場合
postgres=# create view view1(col1,col2,col3) as select col1, pgxa_get_decryptdata( col2, ‘SecurityKey00001’, ‘VARCHAR(64)’ ) as col2 , col3 from table1 t; CREATE VIEW postgres=# comment on view view1 is 'postgres_public_view1'; COMMENT postgres=# select pgxa_create_view('view1'); pgxa_create_view ------------------ t (1 行) postgres=# select * from view1; col1 | col2 | col3 ----------+----------------- f1234567 | 富士通太郎| M (1 row)
注意
CREATE FOREIGN TABLE文で外部テーブルを作成するときに指定するスキーマ名、外部テーブル名、カラム名などには、半角英数字だけを使用してください。
また、外部テーブルに対するビュー名、インデックス名などには半角英数字だけを使用してください。
なお、使用可能文字の詳細は、“利用ガイド”の“定量制限”を参照してください。
pgxa_get_decryptdataシステム関数およびpgxa_put_encryptdataシステム関数を使用したビューを作成した場合、ビューを削除してからSymfoware Analytics Server Advanced Security Optionを無効化してください。