sql >> Database >  >> RDS >> PostgreSQL

8 Nieuwe Oracle-compatibiliteitsfuncties in EnterpriseDB PPAS 9.2 Beta

Enkele nieuwe Oracle-functies die zijn opgenomen in de bètaversie van PostgresPlus Advanced Server 9.2. De meeste zijn charme voor het product en nodig als iemand is gemigreerd van Oracle naar PostgreSQL. Er zijn nog veel meer nieuwe functies in het product zelf, maar ik wil er graag enkele bespreken die verband houden met Oracle-compatibiliteit.

1. Ondersteuning voor objecttype: In deze versie worden ledenfuncties ondersteund, maar nog geen MAP-lidfuncties.

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. Pl/SQL-subtypen: Nu kunnen we eigen subtypes definiëren in het declaratieve deel van elk PL/SQL-blok, subprogramma of pakket.

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. DROP TAFEL CASCADE BEPERKINGEN: Deze optie verwijdert alle buitenlandse sleutelbeperkingen die verwijzen naar de tabel die moet worden verwijderd, en verwijdert vervolgens de tabel.

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's in Pakketdefinitie:

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. TABLE() functie-aanroep op geneste tabellen: Een TABLE() maakt het mogelijk om een ​​verzameling in de FROM-component op te vragen zoals een tabel.

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 van UDT in functie-aanroep: De functies udtabletype_in en udtabletype_out worden nu ondersteund voor geneste tabellen.

7. Gebruik op gereserveerde trefwoorden (LOG/CURRENT_DATE): Nu kan het LOG-woord worden gebruikt om de functie een naam te geven. Ook CURRENT_DATE, kan worden gebruikt voor namen van variabelen.

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 datatype ondersteuning: Nu worden STRING-gegevenstype en NVARCHAR2 voor multi-byte-gegevens ondersteund voor tabelkolom. String gealiaseerd naar VARCHAR2 en NVARCHAR2 verwijst naar varchar van PPAS-gegevenstypes.

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 voor download- en release-opmerkingen:
http://www.enterprisedb.com/products-services-training/products/postgres-plus-advanced-server/downloads


  1. Beste manieren om back-ups te maken voor offline toepassingen?

  2. Gegevens opmaken in Power BI Desktop-visualisaties

  3. Krullende accolades in T-SQL

  4. Wat is de beste PostgreSQL GUI? 2021 Vergelijking