PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

8 nowych funkcji zgodności z Oracle w EnterpriseDB PPAS 9.2 Beta

Niektóre z nowych funkcji Oracle zawartych w PostgresPlus Advanced Server 9.2 beta. Większość z nich jest urokliwa dla produktu i jest potrzebna, jeśli ktoś przeniósł się z Oracle do PostgreSQL. O wiele więcej nowych funkcji w samym produkcie, jednak chciałbym omówić kilka z nich, które są związane z kompatybilnością z Oracle.

1. Obsługa typów obiektów: W tej wersji obsługiwane są funkcje członkowskie, ale jeszcze nie funkcje członkowskie 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. Podtypy Pl/SQL : Teraz możemy zdefiniować własne podtypy w deklaratywnej części dowolnego bloku PL/SQL, podprogramu lub pakietu.

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. OGRANICZENIA KASKADY STOŁU OPUSZCZANIA: Ta opcja usunie wszystkie ograniczenia kluczy obcych, które odnoszą się do tabeli, która ma zostać usunięta, a następnie usunie 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 w definicji pakietu:

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. Wywołanie funkcji TABLE() w tabelach zagnieżdżonych: TABLE() umożliwia zapytanie kolekcji w klauzuli FROM, tak jak w przypadku tabeli.

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 z UDT w wywołaniu funkcji: Funkcje udtabletype_in i udtabletype_out są teraz obsługiwane dla tabel zagnieżdżonych.

7. Użycie w zarezerwowanych słowach kluczowych (LOG/CURRENT_DATE): Teraz słowo LOG może być użyte do nazwania funkcji. Również CURRENT_DATE, może być używany do nazw zmiennych.

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. Obsługa typów danych STRING /NVARCHAR2: Teraz typ danych STRING i NVARCHAR2 dla danych wielobajtowych są obsługiwane dla kolumny tabeli. Łańcuch z aliasem do map VARCHAR2 i NVARCHAR2 na varchar typów danych 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 do pobrania i wydania notatek:
http://www.enterprisedb.com/products-services-training/products/postgres-plus-advanced-server/downloads


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chmura Barmana – Część 1:Archiwum WAL

  2. Priorytet oparty na czasie w zapytaniu Active Record

  3. Jak się dowiedzieć, która partycja będzie używana w partycjonowaniu mieszającym Postgresa?

  4. Jak połączyć aktywnych użytkowników z bazą danych postgreSQL przez SQL?

  5. Czekamy na PGConf India 2017