sql >> Databáze >  >> RDS >> PostgreSQL

Nové funkce kompatibility Oracle v PostgresPlus Advanced Server 9.3Beta

Stručně o produktu EnterpriseDB PostgresPlus Advanced Server, který je postaven na komunitní verzi PostgreSQL s funkcemi kompatibility s Oracle a jeho schopností běžet se stávajícími aplikacemi Oracle bez jakéhokoli překódování (obvykle vyžadováno při migraci) a umožňuje podnikům využívat výhod Open zdrojová databáze s PostgresPlus Advanced Server.

Vzhledem k tomu, že PostgresPlus Advanced Server 9.3 Beta je postaven na komunitní funkci PostgreSQL 9.3 Beta, tak různé funkce kompatibility Oracle představené v BETA verzi, jako jsou syntaxe ve stylu Oracle, balíčky, funkce SQL atd. Níže je několik příkladů spuštěných v PPAS 9.3 BETA:-

Syntaxe materializovaných pohledů:

CREATE MATERIALIZED VIEW name [build_clause][create_mv_refresh] JAKO dílčí dotaz
Kde je build_clause:
BUILD {IMMEDIATE | DEFERRED}
Kde je create_mv_refresh:
OBNOVIT [KOMPLETNÍ] [NA VYŽÁDÁNÍ]

  • Sestavení odloženo – V této volbě data, která nejsou vyplněna v MV v době vytvoření, místo toho se vyplní později pomocí OBNOVIT ZMATERIALIZOVANÉ ZOBRAZENÍ.
  • Okamžité sestavení – V této volbě jsou data vyplněna v MV v době vytvoření z tabulek (výchozí)

edb=# vytvořit materializovaný pohled mymview1 
okamžitě vytvořit
jako vybrat ename,sum(sal) z emp group by ename;
SELECT 14
edb=# vytvořit materializovaný pohled mymview2
sestavení odloženo
jako výběr ename,sum(sal) ze skupiny emp by ename;
SELECT 0

Jak můžete zjistit z výše uvedeného výstupu, „BUILD IMMEDIATE“ zaplní všechny řádky v době vytvoření, zatímco „BUILD DEFERRED“ jednoduše vytvořil fiktivní objekt, který by měl být později naplněn pomocí OBNOVIT ZMATERIALIZOVANÉ ZOBRAZENÍ.

edb=# obnovit zhmotněné zobrazení mymview2;
OBNOVIT ZMATERIALIZOVANÉ ZOBRAZENÍ
edb=# vybrat počet(*) z mymview2;
počet
-------
14
(1 řádek)

Režimy REFRESH [COMPLETE] [ON DEMAND] jsou také podporovány při vytváření Materialized View.

Podpora více funkcí Oracle SQL:
REGEXP_SUBSTR()

edb=# SELECT REGEXP_SUBSTR('Dokumentace EDB AT http://www.enterprisedb.com/','http://([[:alnum:]]+){3,4}/?') jako RESULT FROM dual;
výsledek
------------
http://www
(1 řádek)

REGEXP_COUNT()

edb=# select regexp_count('Jsem v PG-Mailing listu','i',1,'i');
regexp_count
----------- ---
5
(1 řádek)

REGEXP_INSTR()

edb=# SELECT REGEXP_INSTR('PostgreSQL','P') "pozice" FROM dual;
pozice
----------
1
(1 řádek)

RAWTOHEX() / HEXTORAW ()

edb=# CREATE TABLE test (raw_col RAW(10));
CREATE TABLE
edb=# INSERT INTO test VALUES (HEXTORAW('7D'));
INSERT 0 1
edb=# vyberte * z testu;
raw_col
---------
x7d
(1 řádek)

edb=# vyberte rawtohex(raw_col) z testu;
rawtohex
----------
7d
(1 řádek)

Další podpora balíků Oracle:

DBMS_SCHEDULER
DBMS_RANDOM
DBMS_CRYPTO
DBMS_MVIEW
DBMS_LOCK.sleep
UTL_HTTP
UTL_ENCODE
UTL_URL

Další podrobnosti najdete v poznámkách k vydání:
http://get.enterprisedb.com/releasenotes/PgPlus_AS_93Beta1_Release_Notes_20130802.pdf


  1. mysql_num_rows():zadaný argument není platným zdrojem výsledků MySQL

  2. Nejčastější dotazy k nalezení opravy použité v aplikacích Oracle

  3. Rozdělit řetězec oddělený čárkou a vložit do tabulky (int)

  4. [AKTUALIZOVÁNO 2020-01-23] Microsoft Office 365 Build 1912 porušuje identitu propojených tabulek ODBC