PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Nouvelles fonctionnalités de compatibilité Oracle dans PostgresPlus Advanced Server 9.3Beta

En bref sur le produit EnterpriseDB PostgresPlus Advanced Server, sa version basée sur la communauté PostgreSQL avec des fonctionnalités de compatibilité Oracle et sa capacité à fonctionner avec les applications Oracle existantes sans aucun recodage (généralement requis lors de la migration) et permet aux entreprises de profiter de l'Open base de données source avec PostgresPlus Advanced Server.

Comme PostgresPlus Advanced Server 9.3 Beta s'appuie sur la fonctionnalité communautaire PostgreSQL 9.3 Beta, diverses fonctionnalités de compatibilité Oracle introduites dans BETA se déchaînent, telles que les syntaxes de style Oracle, les packages, la fonction SQL, etc. Voici quelques-uns des exemples exécutés dans PPAS 9.3 BETA :-

Syntaxe des vues matérialisées :

CREATE MATERIALIZED VIEW nom [clause_build][create_mv_refresh] sous-requête AS
Où se trouve la clause_build :
BUILD {IMMEDIATE | DIFFÉRÉ}
Où se trouve create_mv_refresh :
REFRESH [COMPLETE] [ON DEMAND]

  • Construction différée – Dans cette option, les données ne sont pas remplies dans MV au moment de la création, mais elles sont remplies plus tard en utilisant REFRESH MATERIALIZED VIEW.
  • Construire immédiatement – Dans cette option, les données sont renseignées en MV au moment de la création à partir des tables (par défaut)

edb=# créer une vue matérialisée mymview1 
construire immédiatement
as select ename,sum(sal) from emp group by ename ;
SELECT 14
edb=# créer une vue matérialisée mymview2
construire différé
as select ename,sum(sal) from emp group by ename ;
SÉLECTIONNER 0

Comme vous pourrez le comprendre à partir de la sortie ci-dessus, "CONSTRUIRE IMMÉDIATEMENT" remplit toutes les lignes au moment de la création, tandis que "CONSTRUCTION DIFFÉRÉE" a simplement créé un objet factice qui devrait être rempli ultérieurement à l'aide de REFRESH MATERIALIZED VIEW.

edb=# actualiser la vue matérialisée mymview2;
ACTUALISER LA VUE MATERIALISEE
edb=# select count(*) from mymview2;
count
-------
14
(1 rang)

Les modes REFRESH [COMPLETE] [ON DEMAND] sont également pris en charge au moment de la création de la vue matérialisée.

Plus de fonctions Oracle SQL prises en charge :
REGEXP_SUBSTR()

edb=# SELECT REGEXP_SUBSTR('Documentation EDB AT http://www.enterprisedb.com/','http://([[:alnum:]]+){3,4}/?') as RESULT FROM double ;
résultat
------------
http://www
(1 ligne)

REGEXP_COUNT()

edb=# select regexp_count('Je suis dans la liste de diffusion PG','i',1,'i');
regexp_count
----------- ---
5
(1 rangée)

REGEXP_INSTR()

edb=# SELECT REGEXP_INSTR('PostgreSQL','P') "position" FROM dual;
position
----------
1
(1 rangée)

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)

Plus d'assistance pour les packages Oracle :

DBMS_SCHEDULER
DBMS_RANDOM
DBMS_CRYPTO
DBMS_MVIEW
DBMS_LOCK.sleep
UTL_HTTP
UTL_ENCODE
UTL_URL

Pour plus de détails, vous pouvez consulter les notes de version :
http://get.enterprisedb.com/releasenotes/PgPlus_AS_93Beta1_Release_Notes_20130802.pdf