PostgresPlus Advanced Server 9.3 Betaは、コミュニティPostgreSQL 9.3 Beta機能に基づいて構築されているため、Oracleスタイルの構文、パッケージ、SQL関数など、ベータ版で導入されたさまざまなOracle互換機能があります。PPAS9.3BETAで実行された例のいくつかを以下に示します。
マテリアライズドビューの構文:
CREATE MATERIALIZED VIEW name [build_clause][create_mv_refresh] AS subquery
Where build_clause is:
BUILD {IMMEDIATE | DEFERRED}
Where create_mv_refresh is:
REFRESH [COMPLETE] [ON DEMAND]
- ビルドの延期 –このオプションでは、データは作成時にMVに入力されず、代わりにREFRESHMATERIALIZEDVIEWを使用して後で入力されます。
- 即時ビルド –このオプションでは、作成時にテーブルからMVに入力されたデータ(デフォルト)
edb=# create materialized view mymview1
build immediate
as select ename,sum(sal) from emp group by ename;
SELECT 14
edb=# create materialized view mymview2
build deferred
as select ename,sum(sal) from emp group by ename;
SELECT 0
上記の出力からわかるように、「BUILD IMMEDIATE」は作成時にすべての行に入力されますが、「BUILD DEFERRED」は、後でREFRESHMATERIALIZEDVIEWを使用して入力する必要があるダミーオブジェクトを作成しただけです。
>edb=# refresh materialized view mymview2 ;
REFRESH MATERIALIZED VIEW
edb=# select count(*) from mymview2;
count
-------
14
(1 row)
REFRESH [COMPLETE] [ON DEMAND]モードは、マテリアライズド・ビューの作成時にもサポートされます。
その他のOracleSQL関数のサポート:
REGEXP_SUBSTR()
edb=# SELECT REGEXP_SUBSTR('EDB documentation AT http://www.enterprisedb.com/','http://([[:alnum:]]+){3,4}/?') as RESULT FROM dual;
result
------------
http://www
(1 row)
REGEXP_COUNT()
edb=# select regexp_count('I am in PG-Mailing list','i',1,'i');
regexp_count
--------------
5
(1 row)
REGEXP_INSTR()
edb=# SELECT REGEXP_INSTR('PostgreSQL','P') "position" FROM dual;
position
----------
1
(1 row)
RAWTOHEX()/ HEXTORAW()
edb=# CREATE TABLE test (raw_col RAW(10));
CREATE TABLE
edb=# INSERT INTO test VALUES (HEXTORAW('7D'));
INSERT 0 1
edb=# select * from test ;
raw_col
---------
x7d
(1 row)
edb=# select rawtohex(raw_col) from test ;
rawtohex
----------
7d
(1 row)
その他のOracleパッケージのサポート:
DBMS_SCHEDULER
DBMS_RANDOM
DBMS_CRYPTO
DBMS_MVIEW
DBMS_LOCK.sleep
UTL_HTTP
UTL_ENCODE
UTL_URL
詳細については、リリースノートを参照してください:
http://get.enterprisedb.com/releasenotes/PgPlus_AS_93Beta1_Release_Notes_20130802.pdf