sql >> Databasteknik >  >> RDS >> PostgreSQL

Nya Oracle-kompatibilitetsfunktioner i PostgresPlus Advanced Server 9.3Beta

Kort om EnterpriseDB-produkten PostgresPlus Advanced Server, den bygger på PostgreSQL-gemenskapsversionen med Oracle-kompatibilitetsfunktioner och dess förmåga att köra med befintliga Oracle-applikationer utan någon omkodning (krävs vanligtvis vid migrering) och gör det möjligt för företag att dra nytta av den öppna källdatabas med PostgresPlus Advanced Server.

Som PostgresPlus Advanced Server 9.3 Beta byggd på community PostgreSQL 9.3 Beta-funktion, därifrån släpps olika Oracle-kompatibilitetsfunktioner som introducerats i BETA, som Oracle-liknande syntaxer, paket, SQL-funktion etc. Nedan är några av exemplen som körs i PPAS 9.3 BETA:-

Syntax för materialiserade vyer:

CREATE MATERIALISED VIEW name [build_clause][create_mv_refresh] AS underfråga
Där build_clause är:
BUILD {IMMEDIATE | DEFERRED}
Där create_mv_refresh är:
REFRESH [COMPLETE] [ON DEMAND]

  • Bygg skjuten upp – I det här alternativet fylls data inte i MV vid skapandet, istället fylls den i senare genom att använda UPPDATERA MATERIALISERAD VY.
  • Bygg omedelbart – I det här alternativet fylls data i MV vid skapandet från tabeller (standard)

edb=# skapa materialiserad vy mymview1 
bygg omedelbart
som välj ename,sum(sal) från emp grupp efter ename;
VÄLJ 14
edb=# skapa materialiserad vy mymview2
bygg uppskjuten
som välj ename,sum(sal) från emp grupp för ename;
VÄLJ 0

Som du kommer att kunna ta reda på från ovanstående utdata fyller "BUILD IMMEDIATE" alla rader vid skapandet, medan "BUILD DEFERRED" helt enkelt skapade ett dummyobjekt som senare borde fyllas i med UPPDATERA MATERIALISERAD VY.

edb=# uppdatera materialiserad vy mymview2;
UPPDATERA MATERIALISERAD VY
edb=# välj count(*) från mymview2;
count
-------
14
(1 rad)

UPPDATERA [COMPLETE] [ON DEMAND]-lägen stöds också när materialiserad vy skapas.

Fler stöd för Oracle SQL-funktioner:
REGEXP_SUBSTR()

edb=# VÄLJ REGEXP_SUBSTR('EDB-dokumentation PÅ http://www.enterprisedb.com/','http://([[:alnum:]]+){3,4}/?') som RESULTAT FRÅN dubbel;
resultat
------
http://www
(1 rad)

REGEXP_COUNT()

edb=# välj regexp_count('Jag finns i PG-e-postlistan','i',1,'i');
regexp_count
------ ---
5
(1 rad)

REGEXP_INSTR()

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

RAWTOHEX() / HEXTORAW ()

edb=# CREATE TABLE test (raw_col RAW(10));
CREATE TABLE
edb=# INFOGA I testVÄRDEN (HEXTORAW('7D'));
INSERT 0 1
edb=# välj * från testet;
raw_col
--------
x7d
(1 rad)

edb=# välj rawtohex(raw_col) från testet;
rawtohex
----------
7d
(1 rad)

Fler stöd för Oracle-paket:

DBMS_SCHEDULER
DBMS_RANDOM
DBMS_CRYPTO
DBMS_MVIEW
DBMS_LOCK.sleep
UTL_HTTP
UTL_ENCODE
UTL_URL

För mer information kan du se release notes:
http://get.enterprisedb.com/releasenotes/PgPlus_AS_93Beta1_Release_Notes_20130802.pdf


  1. Att hyra ut bilar är lika enkelt som att köra:En datamodell för ett biluthyrningsföretag

  2. Hur installerar man MySQLdb (Python data access library to MySQL) på Mac OS X?

  3. Hur man importerar en PostgreSQL-databas med phpPgAdmin

  4. 3 sätt att extrahera ett värde från ett JSON-dokument i SQLite