Omdat PostgresPlus Advanced Server 9.3 Beta voortbouwde op de community PostgreSQL 9.3 Beta-functie, ontketenden verschillende Oracle-compatibiliteitsfuncties die in BETA zijn geïntroduceerd, zoals syntaxis in Oracle-stijl, pakketten, SQL-functie enz. Hieronder staan enkele voorbeelden die zijn uitgevoerd in PPAS 9.3 BETA:-
Gematerialiseerde weergavensyntaxis:
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]
- Bouw uitgesteld – Bij deze optie worden gegevens niet ingevuld in MV op het moment van aanmaak, maar worden ze later ingevuld met VERNIEUWEN MATERIALISEERDE WEERGAVE.
- Onmiddellijk bouwen – In deze optie worden gegevens ingevuld in MV op het moment van aanmaak uit tabellen (standaard)
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
Zoals je uit de bovenstaande uitvoer kunt opmaken dat "BUILD IMMEDIATE" alle rijen vult tijdens het maken, terwijl "BUILD DEFERRED" eenvoudig een dummy-object heeft gemaakt dat later moet worden ingevuld met REFRESH MATERIALIZED VIEW.
edb=# refresh materialized view mymview2 ;
REFRESH MATERIALIZED VIEW
edb=# select count(*) from mymview2;
count
-------
14
(1 row)
REFRESH [COMPLETE] [ON DEMAND]-modi worden ook ondersteund bij het maken van de Materialized View.
Meer ondersteuning van Oracle SQL-functies:
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)
Meer ondersteuning voor Oracle-pakketten:
DBMS_SCHEDULER
DBMS_RANDOM
DBMS_CRYPTO
DBMS_MVIEW
DBMS_LOCK.sleep
UTL_HTTP
UTL_ENCODE
UTL_URL
Voor meer details kunt u de release-opmerkingen raadplegen:
http://get.enterprisedb.com/releasenotes/PgPlus_AS_93Beta1_Release_Notes_20130802.pdf