PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Nuove funzionalità di compatibilità Oracle in PostgresPlus Advanced Server 9.3Beta

In breve sul prodotto EnterpriseDB PostgresPlus Advanced Server, è basato sulla versione della community PostgreSQL con funzionalità di compatibilità Oracle e la sua capacità di essere eseguito con applicazioni Oracle esistenti senza alcuna ricodifica (in genere richiesta durante la migrazione) e consente alle aziende di sfruttare i vantaggi dell'Open database di origine con PostgresPlus Advanced Server.

Poiché PostgresPlus Advanced Server 9.3 Beta si basa sulla funzionalità PostgreSQL 9.3 Beta della comunità, quindi varie funzionalità di compatibilità Oracle introdotte in BETA, come sintassi in stile Oracle, pacchetti, funzione SQL ecc. Di seguito sono riportati alcuni degli esempi eseguiti in PPAS 9.3 BETA:-

Sintassi delle viste materializzate:

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]

  • Costruzione differita – In questa opzione, i dati non popolati in MV al momento della creazione, vengono invece popolati in un secondo momento utilizzando AGGIORNA VISUALIZZAZIONE MATERIALIZZATA.
  • Costruisci immediatamente – In questa opzione, i dati popolati in MV al momento della creazione dalle tabelle (Predefinito)

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

Come sarai in grado di capire dall'output sopra, "BUILD IMMEDIATE" popola tutte le righe al momento della creazione, mentre "BUILD DEFERRED" ha semplicemente creato un oggetto fittizio che dovrebbe essere successivamente popolato utilizzando REFRESH MATERIALIZED VIEW.

edb=# refresh materialized view mymview2 ;
REFRESH MATERIALIZED VIEW
edb=# select count(*) from mymview2;
count
-------
14
(1 row)

Le modalità AGGIORNA [COMPLETA] [SU RICHIESTA] sono supportate anche al momento della creazione della vista materializzata.

Più funzioni Oracle SQL sono supportate:
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)

Più supporto per i pacchetti Oracle:

DBMS_SCHEDULER
DBMS_RANDOM
DBMS_CRYPTO
DBMS_MVIEW
DBMS_LOCK.sleep
UTL_HTTP
UTL_ENCODE
UTL_URL

Per maggiori dettagli puoi fare riferimento alle note di rilascio:
http://get.enterprisedb.com/releasenotes/PgPlus_AS_93Beta1_Release_Notes_20130802.pdf