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

8 Nuove funzionalità di compatibilità Oracle in EnterpriseDB PPAS 9.2 Beta

Alcune delle nuove funzionalità Oracle incluse in PostgresPlus Advanced Server 9.2 beta. La maggior parte di questi sono fascino per il prodotto e necessari se qualcuno è migrato da Oracle a PostgreSQL. Molte altre nuove funzionalità nel prodotto stesso, tuttavia vorrei illustrarne alcune relative alla compatibilità Oracle.

1. Supporto del tipo di oggetto: In questa versione, le funzioni membro sono supportate, ma non ancora le funzioni membro MAP.

create or replace type mf_test as object
(
name varchar2(30),
member function disp return varchar2
);
create or replace type body mf_test as
member function disp return varchar2 is
begin
return 'Name : '||name;
end;
end;
edb=# declare
edb-# v_mf mf_test;
edb$# begin
edb$# v_mf := mf_test('Raghavendra');
edb$# dbms_output.put_line(v_mf.disp());
edb$# end;
Name : Raghavendra

EDB-SPL Procedure successfully completed

2. Sottotipi Pl/SQL : Ora possiamo definire i propri sottotipi nella parte dichiarativa di qualsiasi blocco, sottoprogramma o pacchetto PL/SQL.

Syntax: SUBTYPE subtype_name IS base_type[(constraint)] [NOT NULL];

declare
subtype hiredate is date not null;
pfdate hiredate := sysdate;
begin
dbms_output.put_line(pfdate);
end;
06-OCT-12 19:53:44

EDB-SPL Procedure successfully completed

3. VINCOLI A CASCATA DROP TABLE: Questa opzione eliminerà tutti i vincoli di chiave esterna che fanno riferimento alla tabella da eliminare, quindi elimina la tabella.

edb=# create table master(id int primary key);
edb=# create table master1(id int references master(id));
edb=# d master1
Table "enterprisedb.master1"
Column | Type | Modifiers
--------+---------+-----------
id | integer |
Foreign-key constraints:
"master1_id_fkey" FOREIGN KEY (id) REFERENCES master(id)

edb=# drop table master cascade constraints;
NOTICE: drop cascades to constraint master1_id_fkey on table master1
DROP TABLE
edb=# d master1
Table "enterprisedb.master1"
Column | Type | Modifiers
--------+---------+-----------
id | integer |

4. TYPE è nella definizione del pacchetto:

create or replace package t_pack as 
type ftype is record(name varchar2(20));
end;
edb=# call t_pack.ftype('EDB');
ftype
-------
(EDB)
(1 row)

5. Chiamata alla funzione TABLE() su tabelle nidificate: Un TABLE() consente di interrogare una raccolta nella clausola FROM come una tabella.

CREATE OR REPLACE TYPE string_a IS TABLE OF VARCHAR2(765);
select * from table(string_a('abc','xyz')) ;
column_value
--------------
abc
xyz
(2 rows)

6. IN/OUT di UDT nella chiamata di funzione: Le funzioni udtabletype_in e udtabletype_out sono ora supportate per le tabelle nidificate.

7. Utilizzo su parole chiave riservate (LOG/CURRENT_DATE): Ora è possibile utilizzare la parola LOG per nominare la funzione. Anche CURRENT_DATE, può essere utilizzato per i nomi delle variabili.

edb=# create or replace function log(t text) return text as 
begin
return t;
end;

edb=# select log('EDB');
log
-----
EDB
(1 row)

edb=# declare
edb-# current_date date := '07-OCT-2012';
edb$# begin
edb$# dbms_output.put_line(current_date);
edb$# end;
07-OCT-12 00:00:00

EDB-SPL Procedure successfully completed

8. STRING /NVARCHAR2 supporto del tipo di dati: Ora il tipo di dati STRING e NVARCHAR2 per i dati multi-byte sono supportati per la colonna della tabella. La stringa con alias a VARCHAR2 e NVARCHAR2 esegue il mapping a varchar dei tipi di dati PPAS.

edb=# create table dtype( a string, b nvarchar2);
CREATE TABLE
edb=# d dtype
Table "enterprisedb.dtype"
Column | Type | Modifiers
--------+-------------------+-----------
a | character varying |
b | character varying |

Link per il download e le note di rilascio:
http://www.enterprisedb.com/products-services-training/products/postgres-plus-advanced-server/downloads