PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Neue Oracle-Kompatibilitätsfunktionen in PostgresPlus Advanced Server 9.3Beta

Kurz zum EnterpriseDB-Produkt PostgresPlus Advanced Server, seiner auf der PostgreSQL-Community basierenden Version mit Oracle-Kompatibilitätsfunktionen und seiner Fähigkeit, mit vorhandenen Oracle-Anwendungen ohne Neucodierung (normalerweise bei der Migration erforderlich) ausgeführt zu werden und es Unternehmen zu ermöglichen, die Vorteile von Open zu nutzen Quelldatenbank mit PostgresPlus Advanced Server.

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_URL

Weitere Einzelheiten finden Sie in den Versionshinweisen:
http://get.enterprisedb.com/releasenotes/PgPlus_AS_93Beta1_Release_Notes_20130802.pdf