Como o PostgresPlus Advanced Server 9.3 Beta foi construído sobre o recurso PostgreSQL 9.3 Beta da comunidade, vários recursos de Compatibilidade Oracle introduzidos no BETA foram liberados, como sintaxes no estilo Oracle, pacotes, funções SQL etc. Abaixo estão alguns dos exemplos executados no PPAS 9.3 BETA:-
Sintaxe de visualizações materializadas:
CREATE MATERIALIZED VIEW nome [build_clause][create_mv_refresh] AS subconsulta
Onde build_clause é:
BUILD {IMMEDIATE | DEFERRED}
Onde create_mv_refresh é:
REFRESH [COMPLETE] [ON DEMAND]
- Construção adiada – Nesta opção, os dados não são preenchidos no MV no momento da criação, mas são preenchidos posteriormente usando REFRESH MATERIALIZED VIEW.
- Construir imediatamente – Nesta opção, dados preenchidos no MV no momento da criação das tabelas (Padrão)
edb=# criar visão materializada mymview1
construir imediato
como selecionar ename,sum(sal) do grupo emp por ename;
SELECT 14
edb=# cria visão materializada mymview2
compilação adiada
como select ename,sum(sal) do grupo emp por ename;
SELECIONAR 0
Como você poderá descobrir a partir da saída acima, “BUILD IMMEDIATE” preenche todas as linhas no momento da criação, enquanto “BUILD DEFERRED” simplesmente criou um objeto fictício que deve ser preenchido posteriormente usando REFRESH MATERIALIZED VIEW.
edb=# atualização da visualização materializada mymview2;
REFRESH MATERIALIZED VIEW
edb=# selecione contagem(*) de mymview2;
contagem
-------
14
(1 linha)
Os modos REFRESH [COMPLETE] [ON DEMAND] também são suportados no momento da criação da Visualização Materializada.
Mais suporte a funções Oracle SQL:
REGEXP_SUBSTR()
edb=# SELECT REGEXP_SUBSTR('documentação do EDB em http://www.enterprisedb.com/','http://([[:alnum:]]+){3,4}/?') as RESULT FROM dual;
resultado
------------
http://www
(1 linha)
REGEXP_COUNT()
edb=# select regexp_count('Estou na lista PG-Mailing','i',1,'i');
regexp_count
----------- ---
5
(1 linha)
REGEXP_INSTR()
edb=# SELECT REGEXP_INSTR('PostgreSQL','P') "posição" FROM dual;
posição
----------
1
(1 linha)
RAWTOHEX() / HEXTORAW()
edb=# CREATE TABLE test (raw_col RAW(10));
CREATE TABLE
edb=# INSERT INTO test VALUES (HEXTORAW('7D'));
INSERT 0 1
edb=# selecione * do teste;
raw_col
---------
x7d
(1 linha)
edb=# selecione rawtohex(raw_col) do teste;
rawtohex
----------
7d
(1 linha)
Mais suporte a Pacotes Oracle:
DBMS_SCHEDULER
DBMS_RANDOM
DBMS_CRYPTO
DBMS_MVIEW
DBMS_LOCK.sleep
UTL_HTTP
UTL_ENCODE
UTL_URL
Para mais detalhes, você pode consultar as notas de lançamento:
http://get.enterprisedb.com/releasenotes/PgPlus_AS_93Beta1_Release_Notes_20130802.pdf