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

Nye Oracle-kompatibilitetsfunktioner i PostgresPlus Advanced Server 9.3Beta

Kort om EnterpriseDB-produktet PostgresPlus Advanced Server, det er bygget på PostgreSQL-fællesskabsversion med Oracle-kompatibilitetsfunktioner og dets evne til at køre med eksisterende Oracle-applikationer uden nogen omkodning (typisk påkrævet ved migrering) og giver virksomheder mulighed for at nyde fordelen af ​​Open kildedatabase med PostgresPlus Advanced Server.

Som PostgresPlus Advanced Server 9.3 Beta bygget på community PostgreSQL 9.3 Beta funktion, derfra frigives forskellige Oracle-kompatibilitetsfunktioner introduceret i BETA, såsom Oracle-stil syntakser, pakker, SQL funktion osv. Nedenfor er nogle af eksemplerne udført i PPAS 9.3 BETA:-

Materialiseret visningssyntaks:

CREATE MATERIALIZED VIEW name [build_clause][create_mv_refresh] AS underforespørgsel
Hvor build_clause er:
BUILD {IMMEDIATE | DEFERRED}
Hvor create_mv_refresh er:
REFRESH [COMPLETE] [ON DEMAND]

  • Byg udskudt – I denne valgmulighed udfyldes data ikke i MV på oprettelsestidspunktet, i stedet for udfyldes de senere ved at bruge OPDATERING MATERIALISERET VISNING.
  • Byg med det samme – I denne indstilling er data udfyldt i MV på oprettelsestidspunktet fra tabeller (standard)

edb=# opret materialiseret visning mymview1 
byg øjeblikkeligt
som vælg ename,sum(sal) fra emp gruppe efter ename;
SELECT 14
edb=# create materialized view mymview2
build deferred
as select ename,sum(sal) from emp group by ename;
VÆLG 0

Som du vil være i stand til at finde ud af ovenstående output, udfylder "BYG IMMEDIATE" alle rækker på oprettelsestidspunktet, hvorimod "BYG DEFERRED" blot oprettede et dummy-objekt, der senere burde udfyldes ved hjælp af REFRESH MATERIALIZED VIEW.

edb=# opdater materialiseret visning mymview2;
OPPFRISK MATERIALISERET VISNING
edb=# vælg antal(*) fra mymview2;
tæller
-------
14
(1 række)

OPDATERING [COMPLETE] [ON DEMAND]-tilstande understøttes også på oprettelsestidspunktet for Materialized View.

Flere Oracle SQL-funktioner understøtter:
REGEXP_SUBSTR()

edb=# SELECT REGEXP_SUBSTR('EDB-dokumentation PÅ http://www.enterprisedb.com/','http://([[:alnum:]]+){3,4}/?') som RESULTAT FRA dobbelt;
resultat
------
http://www
(1 række)

REGEXP_COUNT()

edb=# vælg regexp_count('Jeg er på PG-postliste','i',1,'i');
regexp_count
------ ---
5
(1 række)

REGEXP_INSTR()

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

RAWTOHEX() / HEXTORAW ()

edb=# CREATE TABLE test (raw_col RAW(10));
CREATE TABEL
edb=# INSERT INTO test VALUES (HEXTORAW('7D'));
INSERT 0 1
edb=# vælg * fra test;
raw_col
---------
x7d
(1 række)

edb=# vælg rawtohex(raw_col) fra testen;
rawtohex
----------
7d
(1 række)

Flere understøttelse af Oracle-pakker:

DBMS_SCHEDULER
DBMS_RANDOM
DBMS_CRYPTO
DBMS_MVIEW
DBMS_LOCK.sleep
UTL_HTTP
UTL_ENCODE
UTL_URL

For flere detaljer kan du se release notes:
http://get.enterprisedb.com/releasenotes/PgPlus_AS_93Beta1_Release_Notes_20130802.pdf


  1. Ampersand (&) operator i en SQL Server WHERE-klausul

  2. Sådan vælger du et undersæt af kolonner fra en lagret procedures resultatsæt (T-SQL)

  3. Trin for trin opgraderingsproces for R12.2 Upgrade Part -4 (anvender 12.2.x Release Update Pack)

  4. flere forespørgsler samme tabel, men i forskellige kolonner mysql