Da PostgresPlus Advanced Server 9.3 Beta auf der Community PostgreSQL 9.3 Beta-Funktion aufbaut, werden verschiedene Oracle-Kompatibilitätsfunktionen freigesetzt, die in BETA eingeführt wurden, wie Oracle-artige Syntaxen, Pakete, SQL-Funktionen usw. Nachfolgend sind einige Beispiele aufgeführt, die in PPAS 9.3 BETA ausgeführt wurden:
Syntax für materialisierte Ansichten:
CREATE MATERIALIZED VIEW name [build_clause][create_mv_refresh] AS subquery
Wobei build_clause ist:
BUILD {IMMEDIATE | DEFERRED}
Wo create_mv_refresh ist:
REFRESH [COMPLETE] [ON DEMAND]
- Build zurückgestellt – Bei dieser Option werden Daten zum Zeitpunkt der Erstellung nicht in MV eingefügt, sondern später mithilfe von REFRESH MATERIALIZED VIEW.
- Sofort erstellen – Bei dieser Option werden Daten in MV zum Zeitpunkt der Erstellung aus Tabellen ausgefüllt (Standard)
edb=# materialisierte Ansicht mymview1 erstellen
sofort erstellen
as select ename,sum(sal) from emp group by ename;
SELECT 14
edb=# materialisierte Ansicht erstellen mymview2
verzögert erstellen
als Ename auswählen, Summe(Sal) aus emp-Gruppe nach Ename;
SELECT 0
Wie Sie der obigen Ausgabe entnehmen können, füllt „BUILD IMMEDIATE“ alle Zeilen zum Zeitpunkt der Erstellung, während „BUILD DEFERRED“ einfach ein Dummy-Objekt erstellt, das später mit REFRESH MATERIALIZED VIEW gefüllt werden sollte.
edb=# materialisierte Ansicht mymview2 aktualisieren;
MATERIALISIERTE ANSICHT AKTUALISIEREN
edb=# count(*) aus mymview2 auswählen;
count
-------
14
(1 Reihe)
Die Modi REFRESH [COMPLETE] [ON DEMAND] werden auch zum Zeitpunkt der Erstellung der materialisierten Ansicht unterstützt.
Unterstützung weiterer Oracle SQL-Funktionen:
REGEXP_SUBSTR()
edb=# SELECT REGEXP_SUBSTR('EDB-Dokumentation 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 Reihe)
REGEXP_INSTR()
edb=# SELECT REGEXP_INSTR('PostgreSQL','P') "position" FROM dual;
position
----------
1
(1 Zeile)
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)
Weitere Unterstützung für Oracle-Pakete:
DBMS_SCHEDULER
DBMS_RANDOM
DBMS_CRYPTO
DBMS_MVIEW
DBMS_LOCK.sleep
UTL_HTTP
UTL_ENCODE
UTL_URLWeitere Einzelheiten finden Sie in den Versionshinweisen:
http://get.enterprisedb.com/releasenotes/PgPlus_AS_93Beta1_Release_Notes_20130802.pdf