sql >> Database >  >> RDS >> PostgreSQL

Nieuwe Oracle-compatibiliteitsfuncties in PostgresPlus Advanced Server 9.3Beta

Kortom over het EnterpriseDB-product PostgresPlus Advanced Server, de op PostgreSQL-communityversie gebouwde versie met Oracle-compatibiliteitsfuncties en de mogelijkheid om met bestaande Oracle-applicaties te draaien zonder enige hercodering (meestal vereist bij migratie) en bedrijven in staat te stellen te profiteren van de Open brondatabase met PostgresPlus Advanced Server.

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


  1. Importeer SQL-bestand in mysql

  2. Tikken en parkeren:een datamodel voor een parkeerapp

  3. Wat is de beste manier om een ​​Django DB van SQLite naar MySQL te migreren?

  4. Hoe een UITLEG ANALYSE te begrijpen?